with form7.query1 do
begin
 close;
 SQL.Clear;
 sql.Add('select * from 供应商');
 sql.Add('where 供应商.客户负责人姓名='''+edit2.text+'''''and''供应商.单位属性='''+combobox1.text+'''' );
 open;
end;
请问是那里不对啊?好象是sql.Add('where 供应商.客户负责人姓名='''+edit2.text+'''''and''供应商.单位属性='''+combobox1.text+'''' );请大家改正啊!

解决方案 »

  1.   

    sql.Add('where 供应商.客户负责人姓名='''+edit2.text+''' and 供应商.单位属性='''+combobox1.text+'''' );
      

  2.   

    with form7.query1 do
    begin
     close;
     SQL.Clear;
     sql.Add('select * from 供应商');
     sql.Add('where 供应商.客户负责人姓名='''+edit2.text+'''and 供应商.单位属性='''+combobox1.text+'''' );
     open;
    end;
      

  3.   

    sql.Add('where 供应商.客户负责人姓名=''+edit2.text+''and 供应商.单位属性=''+combobox1.text+''' );
      

  4.   

    and哪里怎么没有空格的,还有看看那些单引号够了没有
      

  5.   

    snowtiger2000(snowtiger)的写法是对的
      

  6.   

    错了,是
    sql.Add('where 供应商.客户负责人姓名=''edit2.text''and 供应商.单位属性=''combobox1.text''' );
      

  7.   

    你这样写吧
    query1.Close;
    query1.SQL.Clear;
    query1.SQL.Add('select * from 供应商 where 客户负责人姓名=:s1 and 单位属性=:s2 ');
    query1.ParamByName('s1').asstring:=edit2.text;
    query1.ParamByName('s2').asstring:=combobox1.text;
    query1.Open;
      

  8.   

    peter207(辉), 你的写法供应商.客户负责人姓名等于的就是edit2.text这个字符串,而不是edit2.text里面的内容了
      

  9.   

    这样写哟~~
    with form7.query1 do
    begin
     close;
     SQL.Clear;
     sql.Add('select * from 供应商');
     sql.Add('where 客户负责人姓名='+quotedStr(edit2.text)+'and 单位属性    
          ='+QuotedStr(combobox1.text));
     open;
    end;
      

  10.   

    应该为:
     sql.Add('where 供应商.客户负责人姓名='+''''+edit2.text+''''+' and 供应商.单位属性='+''''+combobox1.text+'''' );
    因为负责人姓名是字符串类型的,不许用'  '括起来!
      

  11.   

    这样写就不用为'弄不清了
    with form7.query1 do
    begin
     close;
     SQL.Text:='select * from 供应商';
     SQL.Text:=SQL.Text +' where 供应商.客户负责人姓名='''+edit2.text+''' and 供应商.单位属性='''+combobox1.text+'''';
     open;
    end;我觉得用sql.text比用sql.add的好