在WHERE claus中使用复制ID时,对Access数据库的更新失败

2024-06-08 16:21:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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

import pyodbc

myDbFile = r"D:\Users\Tobias\Documents\database.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()

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


Tags: idexecutetitletagupdatecursordatabasepyodbc