gpt4 book ai didi

sql-server - pyODBC 和 SQL Server 2008 和 Python 3

转载 作者:行者123 更新时间:2023-12-03 18:36:22 26 4
gpt4 key购买 nike

我为 Python 3.2 安装了 pyODBC,我正在尝试更新我作为测试创建的 SQL Server 2008 R2 数据库。

我在检索数据时没有问题,而且一直有效。

但是,当程序执行 cursor.execute("sql") 来插入或删除一行时,它不起作用 - 没有错误,什么都没有。响应就像我成功更新了数据库但没有反射(reflect)任何更改。

下面的代码本质上是创建一个字典(我稍后有这个计划)并只是快速构建一个 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

最佳答案

假设这不是帖子中的错字,看起来您只是缺少 Connection.commit() 的括号方法:

...
# delete a row
rowsdeleted = cursor.execute("DELETE FROM Killer WHERE Id > 1").rowcount
logging.debug("deleted: " + str(rowsdeleted))

cnxn.commit()

关于sql-server - pyODBC 和 SQL Server 2008 和 Python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15935933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com