pypyodbc cursor.execute() 列表索引超出范围
pypyodbc cursor.execute() List index out of range
很晚了,我累了 - 我希望我只是犯了一个愚蠢的错误,但我似乎看不到它。谁能看到我可能做错了什么?如果我 运行 SQL 在 SQL Server Management studio 上,它工作正常。我可以 运行 其他 SQL 语句来对付游标,只是这个不行。
提前致谢
系统:
Windows 7, Python 3.4, SQLServer 2008, pypyodbc
查询:
IF EXISTS(SELECT * FROM sys.databases WHERE name='{MyDBName}')
BEGIN
ALTER DATABASE {MyDBName} SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE {MyDBName};
END
代码:
cursor.execute(query)
cursor.commit()
异常:
ex = {IndexError} list index out of range
为了子孙后代,我终于找到了解决方法,并会分享以防有人稍后阅读:
事实证明,我需要在建立连接时将自动提交 属性 设置为 true:
auto_commit = true
with pypyodbc.connect(cnx, auto_commit) as connection:
cursor = connection.cursor()
cursor.execute(query)
cursor.commit()
另请注意,我将查询更改为:
DROP DATABASE {MyDBName};
但是,如果没有自动提交,仅此一项并不能解决问题。
我希望这对某人有帮助,该睡觉了:)
很晚了,我累了 - 我希望我只是犯了一个愚蠢的错误,但我似乎看不到它。谁能看到我可能做错了什么?如果我 运行 SQL 在 SQL Server Management studio 上,它工作正常。我可以 运行 其他 SQL 语句来对付游标,只是这个不行。
提前致谢
系统:
Windows 7, Python 3.4, SQLServer 2008, pypyodbc
查询:
IF EXISTS(SELECT * FROM sys.databases WHERE name='{MyDBName}')
BEGIN
ALTER DATABASE {MyDBName} SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE {MyDBName};
END
代码:
cursor.execute(query)
cursor.commit()
异常:
ex = {IndexError} list index out of range
为了子孙后代,我终于找到了解决方法,并会分享以防有人稍后阅读:
事实证明,我需要在建立连接时将自动提交 属性 设置为 true:
auto_commit = true
with pypyodbc.connect(cnx, auto_commit) as connection:
cursor = connection.cursor()
cursor.execute(query)
cursor.commit()
另请注意,我将查询更改为:
DROP DATABASE {MyDBName};
但是,如果没有自动提交,仅此一项并不能解决问题。
我希望这对某人有帮助,该睡觉了:)