with query do
begin
  Close;
  SQL.Clear;
  SQL.Add('select ''+Edit1.Text+'' from table where ...');
  Open;
  Edit2.Text := Fields[0].AsString; 
end;

解决方案 »

  1.   

    你的意思是根据TEXT1的值找到数据库中对应的记录,然后取出该记录的字段的值是吧?
    adoquery.sql := 'select ziduan2 from table where ziduan1 = ''' + text1.text + '''';text2.text := adoquery.fieldbyname('ziduan2').asstring;
      

  2.   

    我认为应该是
    with query do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select ''+fieldname+'' from table where fieldname=:text1');
      Parambyname('text1').asstring:=edit1.text
      Open;
      Edit2.Text := fields.Fields[0].AsString; 
    end; 
      

  3.   

    不要在ONKEYDOWN中写连接数据库的代码吧!
    在ONCLICK事件中写:
    IF KEY=#13 THEN//如果按下了回车键
    BEGIN
      QUERY1.CLOSE;
      QUERY1.SQL.CLEAR;
      QUERY1.SQL.ADD('SELECT * FROM TABLE WHERE FIELD_1='''+TEXT1.TEXT+'''';
      QUERY1.OPEN;
      IF NOT QUERY1.EOF THEN
        TEXT2.TEXT:=QUERY1.FIELDBYNAME('FIELD_2').ASSTRING
      ELSE
        SHOWMESSAGE('NOT FIND!');
    END;