pyODBC插入无声地失败

时间:2015-08-12 18:00:57

标签: python sql-server pyodbc

我在Windows 7机箱上使用python 3.4(ActiveState)和pyodbc 3.0.7连接到在Window NT 6.1上运行的SQL Server 2008 RC2数据库。

我遇到的问题是下面的代码无声地失败。没有对数据库进行任何更改。

connection = pyodbc.connect("DRIVER={SQL Server};SERVER=(local);DATABASE=Kerb;UID=sa;PWD=password", autocommit=True)
cursor = connection.cursor()

cursor.execute('''INSERT INTO [My].[Sample] (Case) VALUES (1);''')

我还尝试使用commit语句强制插入(除非我错了,因为autocommit = True而不应该这样做),这也会因为没有输出而失败。

cursor.execute('''INSERT INTO [My].[Sample] (Case) VALUES (1);''')
cursor.commit()

所以到目前为止,我的解决方案是添加一个睡眠,解决了这个问题。但我担心在生产中实施此解决方案,因为它没有考虑网络滞后等。

cursor.execute('''INSERT INTO [My].[Sample] (Case) VALUES (1);''')
time.sleep(1)

我相信我的问题可能与以下方面有关: pyODBC and SQL Server 2008 and Python 3

如果有人有进一步调试的想法或有关于这一点异步行为的文档,我很乐意听到它。

谢谢!

1 个答案:

答案 0 :(得分:1)

不幸的是,似乎PyODBC无法在不使用超时的情况下执行insert语句。我已经开始使用PyMSSQL,成功提交不再需要超时。

相关问题