1
我已经为Python 3.2安装了pyODBC,并试图更新我创建的SQL Server 2008 R2数据库作为测试。pyODBC和SQL Server 2008和Python 3
我没有问题检索数据,并一直工作。
但是,当程序执行cursor.execute(“sql”)来插入或删除一行时,它不起作用 - 没有错误,什么都没有。答案就好像我成功地更新了数据库,但没有反映出变化。
下面的代码基本上是建立一个字典(我对这个后来的计划),只是做SQL INSERT语句的快速构建(其中工程,我想知道我写的日志条目)
我在我的表中有11行,Killer,即使在提交后也没有受到影响。
我知道这是愚蠢的东西,但我看不到它。
下面是代码:
cnxn = pyodbc.connect('DRIVER={SQL Server Native Client 10.0};SERVER=PHX-500222;DATABASE=RoughRide;UID=sa;PWD=slayer')
cursor = cnxn.cursor()
# loop through dictionary and create insert entries
logging.debug("using test data to build sql")
for row in data_dictionary:
entry = data_dictionary[row]
inf = entry['Information']
dt = entry['TheDateTime']
stat = entry['TheStatus']
flg = entry['Flagg']
# create sql and set right back into row
data_dictionary[row] = "INSERT INTO Killer(Information, TheDateTime, TheStatus, Flagg) VALUES ('%s', '%s', '%s', %d)" % (inf, dt, stat, flg)
# insert some rows
logging.debug("inserting test data")
for row in data_dictionary.values():
cursor.execute(row)
# delete a row
rowsdeleted = cursor.execute("DELETE FROM Killer WHERE Id > 1").rowcount
logging.debug("deleted: " + str(rowsdeleted))
cnxn.commit
谢谢!! !太有趣了,我正盯着我的问题 - 有趣的是,没有任何来自Python解析器的警告或抱怨,cnxn.commit不是一个属性,而是一个函数。再次感谢! – Tab 2013-04-10 21:05:56
@Tab如果你通过脚本运行没有任何消息,但它会在解释器中打印出对象的字符串表示形式 – Bryan 2013-04-10 21:09:08
在这里我正在WingIDE内运行 - .NET是我最后一个平台,所以这是一个相当过渡。 – Tab 2013-04-10 21:17:37