【发布时间】:2021-08-19 06:07:03
【问题描述】:
我有这个问题:
query_del = '''DELETE * FROM Students WHERE Students.[last_name] = "Q";'''
我这样做是为了执行:
conn= pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\XXX\Database.accdb;')
curs = conn.cursor()
curs.execute(query_del)
curs.commit()
但是我收到了这个错误:
ERROR [07002] [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1
数据库当前是这样的:
ID last_name first_name 电子邮件地址
3 布欧 B C
4 Cuuuu C D
70 W W
72 W W
74 W W
76 W W
78 W W
80 W W
82 W W
84 W W
86 W W
87问问
88 W W
89问问
90 瓦特
编辑 1: 这种方式的查询有效:
query_del = '''DELETE * FROM Students WHERE Students.[last_name] = 'Q';'''
但我确实需要在变量中使用双引号,因为我有一些姓氏,例如x'xxx'x,所以我不知道如何删除它们。带有简单双引号的查询在 Access 中运行良好:
DELETE FROM Students WHERE Students.[last_name] = "W"; #Works in Access
DELETE FROM Students WHERE Students.[last_name] = 'W'; #Also Works in Access
如何将其翻译成 python 和 pyodbc?
【问题讨论】:
-
关于包含撇号的文本值的问题,请切换到parameter query