pyodbc列名作为变量

时间:2014-02-18 15:22:48

标签: python sql-server pyodbc

当我想要更改要写入的列时,我想要使用变量,而不是编辑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)

2 个答案:

答案 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()
相关问题