2 lxldos lxldos 于 2016.03.03 14:54 提问

delphi开发环境,写SQL的查询语句,这个单引号是怎么用的,如下

SQLString :=
'SELECT * FROM XXX_XX_XXXX_STATUS_CHANGE_HIST '+
'WHERE RESISTNAME LIKE '''+ComboBox1.Text+'''||''%'' '+
'AND BATCHNO LIKE '''+ComboBox4.Text+'''||''%'' '+
'AND BOTTLENO LIKE '''+ComboBox2.Text+'''||''%'' '+
'AND EQPID LIKE '''+ComboBox3.Text+'''||''%'' '+
'AND STATUS LIKE '''+ComboBox5.Text+'''||''%'' '+
'AND MODIFYTIME > '''+(FormatDateTime('yyyy-mm-dd',DateTimePicker1.date))+''' '+
'AND MODIFYTIME < '''+(FormatDateTime('yyyy-mm-dd',DateTimePicker2.date+1))+''' '+
'ORDER BY MODIFYTIME DESC';

    在SQL的模糊查询符%的两边,用的两个单引号,为什么是两个不是一个呢。新手求解

4个回答

caozhy
caozhy   Ds   Rxr 2016.03.03 15:24

一个是delphi字符串的引号,一个是sql拼接的作为条件的引号。

nm_wyh
nm_wyh   2016.03.05 11:42

'SELECT * FROM XXX_XX_XXXX_STATUS_CHANGE_HIST '+
'WHERE RESISTNAME LIKE '''+ComboBox1.Text+''%'' '+
'AND BATCHNO LIKE '''+ComboBox4.Text+''%'' '+
'AND BOTTLENO LIKE '''+ComboBox2.Text+''%'' '+
'AND EQPID LIKE '''+ComboBox3.Text+'%'' '+
'AND STATUS LIKE '''+ComboBox5.Text+''%'' '+
'AND MODIFYTIME > '''+(FormatDateTime('yyyy-mm-dd',DateTimePicker1.date))+''' '+
'AND MODIFYTIME < '''+(FormatDateTime('yyyy-mm-dd',DateTimePicker2.date+1))+''' '+
'ORDER BY MODIFYTIME DESC';

zhanggb86
zhanggb86   2016.03.06 10:14

可以用Quotedstr函数

SELECT * FROM XXX_XX_XXXX_STATUS_CHANGE_HIST '+
'WHERE RESISTNAME LIKE '+Quotedstr(ComboBox1.Text+'%')
...

longtiankj
longtiankj   2016.05.15 01:09

两个表示包含了单引号这个符号。
举例:
a:='abc';
那么a里面实际存的是:abc

b:='''abc''';
那么b里面实际存的是:'abc'

c:='ab''c';
c里面实际存的是:ab'c

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!