2017-11-28 1 views
0

행 개수는 어떻게 계산됩니까? 나는 pyodbc를 사용하고 있으며 항상 -1을 반환합니다.pyodbc rowcount는 -1 만 반환합니다.

return_query = conn.query_db_param(query, q_params) 
print(return_query.rowcount) 

def query_db_param(self, query, params): 
    self.cursor.execute(query,params) 
    print(self.cursor.rowcount) 
+0

[cursor.rowcount는 항상 python3k의 sqlite3에서 가능한 복제본] (https://stackoverflow.com/questions/839069/cursor-rowcount-always-1-in-sqlite3-in-python3k) – cwallenpoole

답변

1

rowcount은 마지막 작업의 영향을받는 행 수를 나타냅니다. 따라서 insert을 실행하고 하나의 행만 삽입하면 1을 반환합니다. 200 행을 업데이트하면 200을 반환합니다. 반면에 SELECT 인 경우 마지막 작업은 실제로 행 에 영향을주지 않습니다, 결과 집합입니다. 이 경우 0은 구문 상 올바르지 않으므로 인터페이스는 -1을 대신 반환합니다.

또한 변수를 설정하거나 create/alter 명령을 사용하는 작업에 대해서는 -1을 반환합니다.

+0

고맙습니다. 생각 rowcount는 쿼리에서 반환 된 행 수입니다. ColdFusion에서 그들은 queryname.RecordCount PHP를 가지고 mysql_num_rows 파이썬은 그런 것을 가지고 있습니까? @cwallenpoole – user3525290

+1

'len (cursor.fetchall())'당신이 가장 가깝습니까? 어쨌든 MySQL은 그렇게합니다. – cwallenpoole

관련 문제