procedure TF_search.idChange(Sender: TObject);
 begin
 Table1.Filter:='id='''+id.Text+'''';
 Table1.Filtered:=True;
 Table1.Open;
 edit1.Text:=Table1['name'];
 end;

解决方案 »

  1.   

    begin
     Table1.Filter:='id='''+id.Text+'''';
     Table1.Filtered:=True;
     if not Table1.Active then
     Table1.Open;
     edit1.Text:=Table1.FieldByName('name').AsString;
     end;
      

  2.   

    哦~!按你说的测试通过了。
    再请教你一下,
    edit1.Text:=Table1['name'];
    edit1.Text:=Table1.FieldByName('name').AsString;
    这两句有什么区别吗?
    edit1.Text:=Table1['name'];错在什么地方?
      

  3.   

    Table1['name'];
    头一次见到这么写的,编译过得去吗?
      

  4.   

    可我见过书上的代码是有Table1['name']这么写的,
    我对怎么取数据库字段不是很懂。不知道它们的意思。
    请各位帮忙讲讲.
      

  5.   

    如果name字段为NULL时,Table1['name']做赋值就要出错,而Table1.FieldByName('name').AsString做了转化,返回''。
    另Table1['name']就是Table1.fieldvalues['name']
      

  6.   

    严重同意楼上
    begin
     Table1.Filter:='id='''+id.Text+'''';
     Table1.Filtered:=True;
     if not Table1.Active then
     Table1.Open;
     if table1.recordcount>0 then 
       edit1.Text:=Table1.FieldByName('name').AsString
     else
       edit1.text:='无记录';
     end;
      

  7.   

    这句:Table1.Filter:='id='''+id.Text+'''';
    改为:Table1.Filter:='id=''''+id.Text+'''';