DataModule4.ADOQuery1.Close;
    DataModule4.ADOQuery1.SQL.Clear;
    DataModule4.ADOQuery1.SQL.Add('select cname form clinter where cid='''+edit1.text+'''');
    DataModule4.ADOQuery1.Open;
    edit2.Text:=  DataModule4.ADOQuery1.FieldByName('cname').AsString;

解决方案 »

  1.   

    应该是:
    DataModule4.ADOQuery1.Close;
    DataModule4.ADOQuery1.SQL.Clear;
    DataModule4.ADOQuery1.SQL.Add('select cname form clinter where cid=  :STRNAME);
    DataModule4.ADOQuery1.PARAMAS.PARAMASBYNAME('STRNAME').ASSTRING:=EDIT1.TEXT;
    DataModule4.ADOQuery1.Open;
    if datamodule4.adoquery1.fields[0].value<>null then 
    edit2.Text:=  DataModule4.ADOQuery1.FieldByNam('cname').AsString
    你要用到他的参数才行,不能像你那样付值的!!!
      

  2.   

    你为什么不在程序中设置断点直接进入IDE调试?
      

  3.   

    adoquery.SQL.Add('select cname form clinter where cid='''+edit1.text+'''')
    Form.Caption:=adoquery.SQL.Text
      

  4.   

    这样赋值是可以的,
    我想是你的赋值类型不匹配,cid字段不是String型的
      

  5.   

    为什么不设置断点,直接IDE中调试?
      

  6.   

    'form'改成'from'
    cid是integer还是string,
    是integer的话,这么写:
    DataModule4.ADOQuery1.SQL.Add('select cname from clinter where cid='+StrToInt(edit1.text));