2017-11-28 126 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で-1の複製が可能です](https://stackoverflow.com/questions/839069/cursor-rowcount-always-1-in-sqlite3-in-python3k) – cwallenpoole

答えて

1

rowcountは、最後の操作の影響を受ける行の数を表します。したがって、insertを実行して1行のみを挿入すると、1が返されます。200行を更新すると、200が返されます。一方、SELECTの場合、最後の操作は実際には行に影響しません、結果セットです。この場合、0は構文的に不正確なので、代わりに-1を返します。

また、変数の設定やcreate/alterコマンドを使用する操作では、-1が返されます。

+0

ありがとうI rowcountはクエリから返された行の数です。 ColdFusionで彼らはqueryname.RecordCountを持っているPHPはmysql_num_rowsを持っているPythonのようなものは何ですか? @cwallenpoole – user3525290

+1

'len(cursor.fetchall())'はあなたに一番近いですか?とにかく、MySQLがその背後で何をしているのか。 – cwallenpoole

関連する問題