当我想要更改要写入的列时,我想要使用变量,而不是编辑sql-string。这似乎有效。我没有得到任何错误,但数据库没有更新......这有什么问题?
cnxn = pyodbc.connect('DRIVER=FreeTDS;SERVER=dkvmsql08;PORT=1433;DATABASE=dingdong_test;UID=dac\svc-dingdong;PWD=c90346KJHjkhg&%dad742210a3d6fd4436c;T$
cur = cnxn.cursor()
name = Dennis
cur.execute("UPDATE dbo.timestamp set cur.execute("UPDATE dbo.test set ?=1 where id=?",name, row.id)
答案 0 :(得分:0)
您的代码中没有明确的commit语句,并且connect调用不包含autocommit=True
,因此请尝试将cnxn.commit()
添加到代码的末尾。 :)
答案 1 :(得分:0)
查询参数可用于指定列的值,但不能指定列名称,因此您需要执行以下操作:
name = "yourColumnName"
sql = "UPDATE dbo.timestamp SET [{}]=1 WHERE ID=?".format(name)
cur.execute(sql, row.id)
cur.commit()