我想得到字段里面最大的三个值,代码如下:
with adoquery1 do
 begin
  close;
  sql.Clear;
  sql.Add('select * from (select * from table order by hj) where rownum<=3 order by rownum desc');
  self.ADOQuery1.Open;
 end;
现在我想对三个最大值分别赋值也就是取出三个值,下面该怎样接着写?用fieldbyname('hj')也好像不行啊?

解决方案 »

  1.   

      for i := 0 to ADOQuery1.RecordCount-1  do
      begin
        ShowMessage( ADOQuery1.FieldByName('hj').AsString );
        ADOQuery1.Next;
      end;
      

  2.   

    不好意思,我是刚学delphi的,我想将其中的三个值分别赋给a,b,c,该怎么写?
      

  3.   

    a:=ADOQuery1.FieldByName('hj').AsInteger;
    ADOQuery1.Next; 
    b:=ADOQuery1.FieldByName('hj').AsInteger;
    ADOQuery1.Next; 
    c:=ADOQuery1.FieldByName('hj').AsInteger;
    ADOQuery1.Next; 
      

  4.   

    select top 3 * from table   order   by   hj desc
    然后引用楼上
    a:=ADOQuery1.FieldByName('hj').AsInteger; 
    ADOQuery1.Next;   
    b:=ADOQuery1.FieldByName('hj').AsInteger; 
    ADOQuery1.Next;   
    c:=ADOQuery1.FieldByName('hj').AsInteger; 
    ADOQuery1.Next;