用AdoQuery,然后是
  AdoQuery.Close;
  AdoQuery.SQL.Text:='Select * Form TableName';
  AdoQuery.Prepared:=True;
  AdoQuery.Open;
  AdoQuery.First;
  While not AdoQuery.Eof do
    begin
       ShowMessage(AdoQuery.FieldByName('FieldName').AsString);
       AdoQuery.Next;
    end;

解决方案 »

  1.   

    astr:='select email from of_emaillog ';
        
        adods1.Close;
        adods1.CommandText:=astr;
        try
          adods1.Open;
        except
        end;
      adods1.first;
        while not  adods1.Recordset.EOF  do
          begin
            showMessage(adods1.FieldByName('email').AsString);
            adods1.Recordset.MoveNext;
          end;
    因为你在执行adods1.Open后指针指向你所查找所有纪录的最后一条纪录,所以......
      

  2.   

    astr:='select email from of_emaillog ';
        
        adods1.Close;
        adods1.CommandText:=astr;
        try
          adods1.Open;
        except
        end;     adods1.first;
        while not  adods1.EOF  do
          begin
            showMessage(adods1.FieldByName('email').AsString);
            adods1.Next;
          end;
      

  3.   

    不可能的啊,除非你的数据库中只有一条记录啊,你在先看看你查到多少条记录
    adoquery.recordrount()
      

  4.   

    不用First的,Open 之后所指向的就是第一条记录,看看数据库吧
    adods1.Recordset.MoveNext; 一般都用 adods1.next;就可以了
          
      

  5.   

    真的是小妹妹吗?hhhhhh~~~~~~循环前先DisableControls看看哈哈哈哈~~~~~~
      

  6.   

    "先DisableControls看看"根本与此无关
      

  7.   

    我很困惑呢
    我以前似乎有过 adods1.Recordset.MoveNext 成功的经验,这次却不可以了,:(
    我自己试验了一下,试出了adods1.Next 才可以
    还是要给分!
    :)