带有包含特殊字符和空格的字符串的 MSAccess 更新语句

Posted

技术标签:

【中文标题】带有包含特殊字符和空格的字符串的 MSAccess 更新语句【英文标题】:MSAccess update statement with string containing special characters and spaces 【发布时间】:2016-11-26 12:01:58 【问题描述】:

我正在尝试使用 Python 更新 MS Access 中的列中的行。我要更新的字符串是一个 Windows 文件路径,其中包含特殊字符和空格,例如:

C:\Users\Manish\Desktop\Personal\greencindiaphotos25-10-2016\8.2.Patna_west_00001-14335_W\PA11379.jpg

但是,当我运行 sql 查询进行更新时,它会抛出此错误:

pypyodbc.ProgrammingError: (u'42000', u"[42000] [Microsoft][ODBC Microsoft Access Driver] 查询表达式'C:\Users\Manish\Desktop\Personal\greencindiaphotos25-中的语法错误(缺少运算符) 10-2016\8.2.Patna_west_00001-14335_W\PA11379.jpg'.")

这是一个简单的更新查询,例如:

UPDATE Vaishali SET Images=file_path WHERE ID=112312;

如何在access中更新这样的字符串?

【问题讨论】:

【参考方案1】:

您应该使用参数化查询,例如

file_path = r"C:\Users\Manish\Desktop\Personal\greencindiaphotos25-10-2016\8.2.Patna_west_00001-14335_W\PA11379.jpg"
id = 112312
sql = "UPDATE Vaishali SET Images=? WHERE ID=?"
params = (file_path, id)
crsr.execute(sql, params)

【讨论】:

以上是关于带有包含特殊字符和空格的字符串的 MSAccess 更新语句的主要内容,如果未能解决你的问题,请参考以下文章

如何在 vi 编辑器中搜索带有空格和特殊字符的字符串

当列名包含空格和特殊字符时从 data.table 包中读取?

JavaMail:“域包含字符串中的控件或空格”错误消息,因为域包含丹麦字符

如何用Linux 终端指令打开带有空格或特殊符号的目录

java - 如何查找包含特殊字符或空格的url是不是存在于java中

url路径中 符号是特殊字符吗