gpt4 book ai didi

python - pyodbc UPDATE 抛出异常

转载 作者:行者123 更新时间:2023-11-30 22:42:48 25 4
gpt4 key购买 nike

我正在制作一个 python 程序,为 Azure SQL 数据库执行 Elo 计算。问题出在最后两个“cursor.execute”命令(更新)上。

我在发布到这里之前取出了部分代码以使其更小,但所有变量都从 find_winner 和 find_loser 方法正确传递 - 打印命令显示正确的值。

当我按原样运行程序时,它会打印评级的变化以及来自 except block 的消息。当我注释掉 UPDATE 方法时,它不会打印 except 消息。我能想到的唯一原因是 find_winner 和 find_loser 元组中的变量没有正确输入到 SQL 语句中。

我尝试用 ? 运行它和“%s”而不是 Winner_new_ rating 和 Winner_id,但这 3 个版本都不起作用。

我是否遗漏了一些明显的东西?输入存储在变量中的参数的正确方法是什么?

def rate():
try:
(winner_rating,winner_name,winner_id) = find_winner()
(loser_rating,loser_name,loser_id) = find_loser()

cursor = conn.cursor()

print(winner_name, "wins", winner_rating, "-->", winner_new_rating)
print(loser_name, "loses:", loser_rating, "-->", loser_new_rating)

cursor.execute("UPDATE KIDS SET Rating = winner_new_rating WHERE LocalID = winner_id")
cursor.execute("UPDATE KIDS SET Rating = loser_new_rating WHERE LocalID = loser_id")

conn.commit()

except:
print("Rate method error")

最佳答案

这是正确的语法:

try:
cursor.execute("UPDATE KIDS SET Rating = ? WHERE LocalID = ?",
str(winner_new_rating), winner_id)
cursor.execute("UPDATE KIDS SET Rating = ? WHERE LocalID = ?",
str(loser_new_rating), loser_id)
except DatabaseError as e:
print(str(e))

关于python - pyodbc UPDATE 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41990019/

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