主题:求助关于delphi中SQL语句的"'"配对问题
jiaer0302
[专家分:70] 发布于 2007-04-13 15:18:00
'是怎样配对的
回复列表 (共5个回复)
沙发
zaliang [专家分:1010] 发布于 2007-04-13 16:05:00
直接用QuotedStr函数不是更好吗???
s:='select * from table where name='+QuotedStr(value);
板凳
冰封星云 [专家分:2260] 发布于 2007-04-13 21:06:00
'''+ +'''
3 楼
zimo [专家分:240] 发布于 2007-04-14 10:20:00
同意二楼的!
我也是一直那么用的!!
4 楼
hanzhijun402 [专家分:3690] 发布于 2007-04-19 16:01:00
如果是在写SQL语句时遇到这个问题,有几种解决办法:
1:把 ' 看作一个长度为1的字符串,把这个字符串两边加上''与别的字符串连接,如:
sql.add('select * from table where field='+'''+edit1.text+''');
2:使用ASCII码取代',即:
sql.add('select * from table where field='+#39+edit1.text+#39);
3:使用参数:
sql.add('select * from table where field=:field');
parameters.parambyname('field').value:=edit1.text;
5 楼
xphboxky [专家分:0] 发布于 2007-04-20 17:29:00
delphi中SQL的双引号配对有点类似于tc2.0中的双引号配对,其实应该是属于sql server2000中的双引号的问题,大家可以仔细参照sql serve的帮助讲得很清楚.
例如:我现在要使用sql查询一个表tb1中的姓名xm等于一个文本框的值的话就需要使用到这个双引号配对的问题
sql.add('select * from tb1 where xm='''+trim(edit1.text)+'''');
如果edit1.text的值为 王明 的话上述语句即等价于
select * from tb1 where xm='王明'
总之,在这里面的是两个单引号就看作是一个单引号,非常类似于tc2.0中的转义字符的使用
我来回复