以文本方式查看主题 - 搭建论坛 (http://bbs.diylsoft.com:8118/starforum/index.asp) -- 数据库交流 (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=6) ---- ADO查询中的引号问题 (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=6&id=7533) |
-- 作者:reachtone -- 发布时间:2007-3-19 19:11:42 -- ADO查询中的引号问题 我现在正做的一个数据管理系统,前段时间测试都完全正常,今天偶然出现了错误。经仔细检查发现,是ADO查询语句中单引号和双引号的问题。该SQL语句类似于如下格式: 错误的语句:{select * from 销售日报 where 备注信息 like \'% \' %\'} {select * from 销售日报 where 备注信息 like "% " %"} 问题就在<备注信息>中的条件值部分。如果输入的条件值中含有单引号\',错误出现;如果把这个语句中的单引号改成双引号,则没问题。下面就是正确的语句,可以正常执行: {select * from 销售日报 where 备注信息 like \'% " %\'} {select * from 销售日报 where 备注信息 like "% \' %"} 由于我设计的系统中,允许用户输入<备注信息>中的任意关键字进行检索查询,就是说,用户很有可能就输入一个单引号或者双引号,请问我这个SQL查询语句该怎样写? |
-- 作者:reachtone -- 发布时间:2007-3-20 9:13:52 -- 选择查询构件中也存在这样的问题: 建议管理员完善一下,要么解决此问题,要么限制单引号或双引号作为查询条件。 |
-- 作者:admin -- 发布时间:2007-3-20 10:28:08 -- 实际上,你在第一楼已经讲解的很明白了,这是SQL语法的问题。在SQL语言中“单引号(\')”和“双引号(")”,在条件语句(where)中查询字符串变量的时,需要用单引号或双引号,括起来。 如::{select * from 销售日报 where 备注信息 like \'% \' %\'} 你的本意是,查询备注信息中,包含“\'”的信息;但是,第二个单引号,与第一个单引号,已经形成了SQL语句,而第三个单引号,成了孤号,你的SQL语法当然出错了。每一个语言都有语法和关键字之分,不能不照顾 语法和关键字,而随意应用。这个问题与搭建之星无关。 |