次のコードの何が問題なのかわかりません。構文は問題ありません (SQL Management Studio で確認済み)。必要に応じてアクセスできるので、それも機能します..しかし、何らかの理由で、テーブルを作成しようとするとすぐにPyODBC 経由で動作を停止します。
import pyodbc
def SQL(QUERY, target = '...', DB = '...'):
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + target + DB+';UID=user;PWD=pass')
cursor = cnxn.cursor()
cursor.execute(QUERY)
cpn = []
for row in cursor:
cpn.append(row)
return cpn
print SQL("CREATE TABLE dbo.Approvals (ID SMALLINT NOT NULL IDENTITY PRIMARY KEY, HostName char(120));")
次のエラーで失敗します。
Traceback (most recent call last):
File "test_sql.py", line 25, in <module>
print SQL("CREATE TABLE dbo.Approvals (ID SMALLINT NOT NULL IDENTITY PRIMARY KEY, HostName char(120));")
File "test_sql.py", line 20, in SQL
for row in cursor:
pyodbc.ProgrammingError: No results. Previous SQL was not a query.
これがなぜなのか誰にも分かりますか?Windows 2008 SQL Server 環境 (高速データベースではない) に対して Windows 7 を実行する "SQL Server" ドライバーをインストールしました (これはデフォルトです)。