大家帮帮忙,如下面代码:ADOQuery1.SQL.Add('where words like ''%' + Edit1.Text + '%''')如果客户在Edit1中输入 I'm 的时候,就出错了。这种情况单引号怎么处理?不能屏蔽客户的输入,因为I'm在记录中是存在的,必须被查找出来。谢谢了啊!

解决方案 »

  1.   

    使用参数ADOQuery1.SQL.Add('where words like ''%:Key%''');
    ADOQuery1.Parameters.ParamByName('Key').Value := Edit1.Text;
      

  2.   

    感谢kelei0017的回复
    ADOQuery1.SQL.Add('where words like ''%:Key%''');
    ADOQuery1.Parameters.ParamByName('Key').Value := Edit1.Text;
    使用这两行代码的话,运行会提示ADOQuery1:Parameter 'key' not found,参数key找不到。
      

  3.   

    把Edit1.Text中的'用''替代,比如I'm转换成I''m
      

  4.   

    是哦
    我说为什么quotedstr这个函数,
    可以自己写成这样的
    就是用四个单引号'''' 代表一个单引号