3

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) を試しましたが、すべて同じ結果が得られたため、コマンド自体に問題はないと思いました。このマイクロソフトのサイトによると、開いているカーソルがないことを意味しますが、その説明を取得できるので、私の理解では存在する必要があります。

4

2 に答える 2

0

同様の問題がありました。「USE Database」ステートメントを削除することで、これを解決できました。

ここですでにデータベースに接続しています:

conn = pypyodbc.connect(r'DRIVER={SQL Server Native Client 11.0};SERVER=server;DATABASE=database;UID=uid;PWD=pwd')
于 2017-11-27T18:58:13.303 に答える