有一张表,字段名分别为:name,capital,contient
在foem1上有一button1,edit1,label1,label2,另外adotable1已连好。
我的程序老出错,就是因为这个lookup函数。procedure TForm1.Button1Click(Sender: TObject);
var
v:variant;
begin
    v:=adotable1.Lookup('name',edit1.Text,'Capital,continent');
    if not (VarType(V) in [varNull]) then
    begin
    label1.Caption:=v[0];
    label2.caption:=v[1];
    end
    else
    showmessage('no value');
end;
在edit1中输入字符后点击button1后如有符合的值,老出错。

解决方案 »

  1.   

    lookup函数的用法不太对好象。
      

  2.   

    lookup好像只能查询出一列来吧。
      

  3.   

    v := ADOTable1.Lookup('Name',Trim(Edit1.Text),'Captial');
      

  4.   

    v:=adotable1.Lookup('name',edit1.Text,'Capital;continent'); //逗号改成分号
    adotable1连接的表,必须是按name索引
      

  5.   

    不知你的错误提示是什么参考下面的例子
    procedure TForm1.Button1Click(Sender: TObject);
    var
      V: Variant;
      C: Integer;
      A: String;
    begin
      V := Table1.Lookup('Company;State',
        VarArrayOf(['Blue Sports', 'OR']),
        'CustNo;Addr1');
      if not (VarType(V) in [varNull]) then begin
        C := V[0];
        A := V[1];
        ShowMessage(IntToStr(C) + #10 + A);
      end
      else
        ShowMessage('Search unsuccessful!');
      

  6.   

    对lookup,locate不一定要索引,这是肯定的。
      

  7.   

    older(疲倦的程序员) :那怎样取出'Capital;continent'值呢?
    我按照你的写法也不行,它出错,提示:
    '找到不字段:'Capital;continent''
      

  8.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    v:variant;
    s:string;
    m:string;
    n:integer;//因为area为数字型
    begin
       v:=adotable1.Lookup('name',edit1.Text,'Capital;continent;area');
       if not (VarType(V) in [varNull]) then
       begin
       s:=v[0]
       m:=v[1]
       n:=v[2]
       showmessage(s+m+inttostr(n));
       end
       else
       showmessage('no value');
    end;
    end.