当WHERE子句中使用复制ID时,UPDATE to Access数据库失败



我有一个要修改的数据库文件。因此,我使用pyodbc与以下代码:

import pyodbc
myDbFile = r"D:UsersTobiasDocumentsdatabase.db"
myPass = u'*****'
cnx = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ=%s;PWD=%s;Charset=utf-8' % (myDbFile, myPass))
cursor = cnx.cursor()
# reading any database entry
cursor.execute('SELECT ID, Title, Tag FROM Dox')
mydata = cursor.fetchall()
print mydata[34]
# -> returns ('010CC005-4A8A-4AB3-8B98-E431D3BB328B', u'itemTitle', None)
# The following line works fine
cursor.execute('UPDATE Dox SET Tag=30 WHERE Title = ?', u'itemTitle')
# But this doesn't -> nothing is changed
cursor.execute('UPDATE Dox SET Tag=30 WHERE ID = ?', '010CC005-4A8A-4AB3-8B98-E431D3BB328B')
cnx.commit()
cnx.close()

我完全不知道为什么"身份证"的识别不起作用。你有什么提示吗?

Access在指定复制ID值时可能有点挑剔,我能够按照发布的内容重新创建您的问题。然而,将ID值包装在花括号中对我有效:

cursor.execute('UPDATE Dox SET Tag=30 WHERE ID = ?', '{010CC005-4A8A-4AB3-8B98-E431D3BB328B}')

最新更新