SQL语句的引号老是写不对,请大家说说这些引号和+号是怎么匹配的?
下面的语句是正确的,请以此句为例
Str1:='Select * from UserInfo Where '+CXZD+'='''+CXNR+'''';

解决方案 »

  1.   

    注意delphi中的双引号代表SQL语句中的单引号:SQL语句:select  * from  userinfo  where  name = 'aaa';delphi中:  'select * from userinfo  where  name = ''aaa''';
      

  2.   

    Str1:='Select * from UserInfo Where '+CXZD+'='''+CXNR+'''';//用动态的SQL语句吧,不用考虑的
    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('select * from userinfo where (cxzd=:a)and(zxnr=:b)');
      parameters.parametersbyname('a').value:=edit1.text;
      parameters.paramtersbyname('b').value:=edit2.text;
      open;
    end;
      

  3.   

    呵呵,楼上意思对了,说法有点问题。应该是“连续的两个单引号”而不是“双引号”哦。Delphi用单引号'作为字符串的定界符,如果在字符串中包括有单引号的话,使用连续的两个单引号''即可。
      

  4.   

    sql.add('select * from userinfo where (cxzd=:a)and(zxnr=:b)');
      parameters.parametersbyname('a').value:=edit1.text;
      parameters.paramtersbyname('b').value:=edit2.text;
    这个方法不错。
      

  5.   

    Str1:='Select * from UserInfo Where '+CXZD+'='+#39+CXNR+#39;后面为什么4个',你用showmessage('''')看看就知道了
      

  6.   

    Str1:='Select * from UserInfo Where %s=%s';sql:=Format(Srt1,[CXZD,QuotedStr(CXNR)]);
      

  7.   

    一楼写的是常量,可以那么用。但若CXNR是字符(或日期)变量就应写成
    Str1:='Select * from UserInfo Where CXZD='''+CXNR+'''';若CXNR是数值变量
    Str1:='Select * from UserInfo Where CXZD='+CXNR;