以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于SQL检索中存在冲突的字符的处理方法  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=160984)

--  作者:hitzfeld
--  发布时间:2021/3/1 2:55:00
--  关于SQL检索中存在冲突的字符的处理方法
我有个检索SQL的代码
dr = DataTables("订单").SQLFind("产品名称 = \'"& y &"\' ,0)
由于数据库中的产品名称存在与SQL语言冲突的字符,比如\'(单引号),&(和)这些字符,会导致报错,我知道这些字符是因为和SQL语言定义的字符有冲突造成的
但是我不知道要怎么解决?要求客户修改全部的产品名称是不可能的。请专家指点下,谢谢!


--  作者:有点蓝
--  发布时间:2021/3/1 8:36:00
--  
单引号替换位2个单引号,其它符号使用中括号括起来
y = y.replace("\'","\'\'").replace("*","\'[*]").replace("%","\'[%]")
dr = DataTables("订单").SQLFind("产品名称 = \'" & y & "\'")