Windows 上の Python 3.5 で pypyodbc 1.3.3 を使用して Microsoft SQL データベースからデータを取得しようとしましたが、次のコードを使用して pypyodbc.ProgrammingError '[24000] [Microsoft] [SQL Server Native Client 11.0] Invalid cursor state' が発生しました:
import pypyodbc
conn = pypyodbc.connect(r'DRIVER={SQL Server Native Client 11.0};SERVER=server;DATABASE=database;UID=uid;PWD=pwd')
cursor = conn.cursor()
sql = '''USE database;
SELECT R0
FROM table;'''
cursor.execute(sql)
results = cursor.fetchone()
print(results)
SQLはMicrosoft SQL Server Management Studioで機能し、接続と実行は、同じデータベースに挿入するために作成した別のスクリプトで機能し、削除しても機能します
results = cursor.fetchone()
これまでのところ、cursor.fetchone()、cursor.fetchall()、および list(cursor) を試しましたが、すべて同じ結果が得られたため、コマンド自体に問題はないと思いました。このマイクロソフトのサイトによると、開いているカーソルがないことを意味しますが、その説明を取得できるので、私の理解では存在する必要があります。