ADOQuery2.Close;
ADOQuery2.SQL.Add('select id from t_printqueue');
ADOQuery2.Open;我要循环ADOQuery2的记录集,并且把id的值提取出来做处理,要怎么写?
还有就是如何判断ADOQuery2的记录集已经是空?

解决方案 »

  1.   

    while not adoquery2.eof do
    begin
      你的代码;
    end;
      

  2.   

    while not adoquery2.eof do
    begin
      你的代码;
      adoquery2.next;
    end;
      

  3.   

    怎么获得id的值呢? id的类型是varchar2
      

  4.   

    if adoquery1.active then
      if adoquery1.IsEmpty then
        showmessage('数据集空')
      else
        begin
          adoquery1.first;
          while not adoquery1.eof then
            begin
              ...youcode
              adoquery1.next;
            end;
        end;
      

  5.   

    var
     P_Id:char;
    begin
    //如何循环ADOQuery的记录集?急!! 的程序;
    adoquery2.First;
    while not adoquery2.eof do
    begin
      P_id:=adoquery2.fieldByName('id').asstring;
      //处理事物;
      adoquery2.next;
    end;
      

  6.   

    var
      s :TStrings;
    begin
      s := TStringList.Create;
      ADOQuery2.Close;
      ADOQuery2.SQL.Add('select id from t_printqueue');
      ADOQuery2.Open;
      ADOQuery2.First;
      while not ADOQuery2.eof then
      begin
        s.Add(ADOQuery2.FieldByName('id').AsString);
        ADOQuery2.next;
      end;
      {s中保存的就是id的值了。用s[0]..s[ADOQuery2.Record-1]访问}
    end;ps:楼上兄弟好!^_^
      

  7.   

    楼上正解
    查询为什么不用dataset?
      

  8.   

    Dataset 是一个不可见的控见,怎么能用来查询呢?
    我们用的是由它派生出来的TTable 和TQuery.
      

  9.   

    while not adoquery2.eof do
    begin
      //...........
      adoquery2.next;
    end;
      

  10.   

    不知道啊,平常只是查询的时候我就用ADODataSet,需要插入数据的时候我才会想到用ADOQuery。呵呵