回 帖 发 新 帖 刷新版面

主题:求助关于delphi中SQL语句的"'"配对问题

'是怎样配对的

回复列表 (共5个回复)

沙发

直接用QuotedStr函数不是更好吗???
s:='select * from table where name='+QuotedStr(value);

板凳

'''+  +'''

3 楼

同意二楼的!
我也是一直那么用的!!

4 楼

如果是在写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 楼

    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中的转义字符的使用

我来回复

您尚未登录,请登录后再回复。点此登录或注册