我不知道下面的代码有什么问题,语法没问题(用 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.
有人知道这是为什么吗?我安装了“SQL Server”驱动程序(默认),在 Windows 2008 SQL Server 环境(不是快速数据库)上运行 Windows 7。