Rss & SiteMap

搭建论坛 http://bbs.diylsoft.com:8118/starforum/index.asp

搭建论坛是“搭建式”中文软件开发工具《搭建之星》、《网站·搭建者》技术交流的地方。
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:ADO查询中的引号问题

1楼
reachtone 发表于:2007-3-19 19:11:42

我现在正做的一个数据管理系统,前段时间测试都完全正常,今天偶然出现了错误。经仔细检查发现,是ADO查询语句中单引号和双引号的问题。该SQL语句类似于如下格式:

错误的语句:{select * from 销售日报 where 备注信息 like '% ' %'}

{select * from 销售日报 where 备注信息 like "% " %"}

问题就在<备注信息>中的条件值部分。如果输入的条件值中含有单引号',错误出现;如果把这个语句中的单引号改成双引号,则没问题。下面就是正确的语句,可以正常执行:

{select * from 销售日报 where 备注信息 like '% " %'}

{select * from 销售日报 where 备注信息 like "% ' %"}

由于我设计的系统中,允许用户输入<备注信息>中的任意关键字进行检索查询,就是说,用户很有可能就输入一个单引号或者双引号,请问我这个SQL查询语句该怎样写?

2楼
reachtone 发表于:2007-3-20 9:13:52

选择查询构件中也存在这样的问题:


此主题相关图片如下:
按此在新窗口浏览图片

建议管理员完善一下,要么解决此问题,要么限制单引号或双引号作为查询条件。

3楼
admin 发表于:2007-3-20 10:28:08

实际上,你在第一楼已经讲解的很明白了,这是SQL语法的问题。在SQL语言中“单引号(')”和“双引号(")”,在条件语句(where)中查询字符串变量的时,需要用单引号或双引号,括起来。

如::{select * from 销售日报 where 备注信息 like '% ' %'}

你的本意是,查询备注信息中,包含“'”的信息;但是,第二个单引号,与第一个单引号,已经形成了SQL语句,而第三个单引号,成了孤号,你的SQL语法当然出错了。每一个语言都有语法和关键字之分,不能不照顾 语法和关键字,而随意应用。这个问题与搭建之星无关。


共3 条记录, 每页显示 10 条, 页签: [1]

搭建之星 网站·搭建者 Copyright © 2000 - 2011
Powered By Dvbbs Version 8.2.0
Processed in 0.12500 s, 3 queries.