1
나는 매번 pyodbc 쿼리 후에 자동 결과 페치를하고 싶다. 일반적인 상황에서 cursor.fetchall()
호출은 예외가 발생합니다. SQL이 실행되지 않았거나 결과 집합을 반환하지 않은 경우 (예 : SELECT 문이 아닌 경우) 나는 이런 식으로하고 싶다 :예외 처리없이 pyodbc에서 fetchall() 호출을 자동화하려면 어떻게해야합니까?
def execute(query, data):
cursor.execute(query, data)
cursor.commit()
try:
result = cursor.fetchall()
except pyodbc.ProgrammingError:
result = None
return result
예외 처리를 사용하지 않고도 가능하게하는 방법이 있는가? (사용하면 너무 느리다)?
답변 해 주셔서 감사합니다. 난 당신의 코드를 시도하고 내 'cursor.rowcount'는 ** - 1 **와 같은 결과를 가져올 때와 다른 숫자가 없을 때 같음을 알았다. 그것은 다소 이상하다. (문서에 따르면, 그것은 다른 방향으로 돌아 가야한다.) 그러나 그것은 어쨌든 내 문제를 해결했다. –
몇 가지 이유로'cursor.rowcount'가 잘못된 값과 같은 경우'cursor.description' 속성 (결과가 없을 때'None')을 사용할 수 있다는 것을 알았습니다. –