比如用query.sql.add('select * from table1');
query.open;
要取得table1中各个字段的值,怎么弄。
我用query.first;
s:string;
s:=query.fieldvalues['字段名'];
但是这样好像不行,应该怎么做?

解决方案 »

  1.   

    query.fieldbyname('字段名').assring;
      

  2.   

    query.first;是返回查询结果集的第一条record吗?
      

  3.   

    query没有fieldbyname方法呀,好像table才有。
    我打query.出来的方法列表中没有fieldbyname呀
    只有fieldvalues[],但是,用了这个又出不来,急呀
      

  4.   

    var
     s:string;
    begin
     query1.close;
     query1.sql.clear;
     query1.sql.add('select * from table1');
     query1.open;
     query1.first;
     if not query1.eof then
     begin
      s:=query1.fieldbyname('字段').asstring;
    ...........
     end;
     showmessage('s');
    end;
      

  5.   

    s:=ADOQuery1.FieldByName('字段名').AsString;
      

  6.   

    query.fieldbyname('字段名').assring;
      

  7.   

    query,first是从表的第一条记录开始查询
    并不是返回第一条记录;
    query1.Fieldbyname('字段名').asString;
      

  8.   

    query.fieldbyname 是有的,只管用就是,比较方便。当输入第一个括号时就出现了。
      

  9.   

    最简单的方法,适用于Table和Query,并且不用管字段类型。
    例如:
    var i:integer;
        Str:string;
    begin
      ...
      i:=Query1['ID'];//字段是整数
      Str:=Query1['UserName'];//字段是string型
      ...end;