sql.Add('select * from kehu'); 
sql.Add('where 身份证=:tempstr');
parameters.parambyname('tempstr').value := '456546';
 

解决方案 »

  1.   

    定义一个字符串 staff_card
      staff_card:='456546';
     这样写SQL
       SQL.TEXT:='SELECT  *  FROM  KEHU  WHERE 身份证='+''''+staff_card+''''
    这绝对正确,一定要给分哟
      

  2.   

    SQL.TEXT := 'SELECT * FROM KEHU WHERE 身份证 = ' + QuotedStr('446546');
      

  3.   

    定义一个字符串 staff_card 
    staff_card:='456546'; 
    这样写SQL 
    SQL.TEXT:=Format('SELECT * FROM KEHU WHERE 身份证=%s',staff_card+);
      

  4.   

    Sorry,
    SQL.TEXT:=Format('SELECT * FROM KEHU WHERE 身份证=%s',staff_card); 
      

  5.   

    sql.Add('select * from kehu'); 
    sql.Add('where 身份证=:SFZ'); 
    ParamByName('SFZ').AsString:='456546';
      

  6.   

    这样写绝对没问题的!
    SQL.Text:='select * from kehu where 身份证='+QuotedStr('456546')+'';
    好了,运行去吧!
      

  7.   

    sql.Add('select * from kehu where 身份证="456546"'); 
      

  8.   


      SQL.add('''456546'''); 
      

  9.   

    var ms1,ms2:string;
    ms1:='456546';
    sql.Add('select * from kehu'); 
    ms2:='where 身份证='+Format('s%',[#39+ms1+#39]);
    sql.Add(ms2)参考 Format() 
         #39 是 单引号 
      

  10.   

    应该是 Format('%s',[#39+ms1+#39]); 不是 s% ,,soryy
      

  11.   

    下面是我写的你可以看也是个查询,
     begin
          if find1 <>'' then
             str:=str+' where 费用项目='''+ find1+''''
          else
            str:=str+' where 日期='''+ find2+'''';
       end;
         // editx2.Text :=str;
          query1.Close ;
          query1.SQL.Clear ;
          query1.SQL.Add(str);
          query1.open;