2014-02-18 110 views
0

而不是編輯sql-string,當我想改變哪一列寫入我想使用一個變量..這似乎工作。我沒有得到任何錯誤,但數據庫沒有更新......這有什麼問題?pyodbc列名稱作爲變量

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

有沒有明確的承諾聲明,你的代碼和連接調用不包括autocommit=True,所以儘量增加cnxn.commit()到您的代碼的末尾。 :)

0

查詢參數可用於指定值的列的但不列,所以你需要做類似如下:

name = "yourColumnName" 
sql = "UPDATE dbo.timestamp SET [{}]=1 WHERE ID=?".format(name) 
cur.execute(sql, row.id) 
cur.commit()