本帖最后由 wc281279102 于 2010-11-12 13:35:24 编辑

解决方案 »

  1.   


    改为:var i:integer;
    ...
    for i:=1 to form5.ADOQuery1.RecordCount do begin
      label2.Caption:=vartostr(form5.ADOQuery1.Recordset.Fields[0].Value);
      label4.Caption:=vartostr(form5.ADOQuery1.Recordset.Fields[1].Value);
      showmessage('下一条记录');
      form5.ADOQuery1.next;
    end;
      

  2.   

    try
      form5.adoquery1.Close;
      form5.adoquery1.SQL.Clear;
      form5.adoquery1.SQL.Add('select students.number,students.name,gra.grade from students,gra');
      form5.adoquery1.SQL.Add('where gradesetterNo='''+number+'''and students.number='''+gradenumber+'''');
      form5.adoquery1.open;
      finally;
      end;
      if form5.ADOQuery1.RecordCount>0 then
      begin
         form5.ADOQuery1.first;
         while not form5.ADOQuery1.eof do 
         begin
             label2.Caption:=vartostr(form5.ADOQuery1.Recordset.Fields[0].Value);
             label4.Caption:=vartostr(form5.ADOQuery1.Recordset.Fields[1].Value);
             sleep(10000)
         form5.ADOQuery1.next;
         end;
      end一条一条的显示给你看
      

  3.   

      if form5.ADOQuery1.RecordCount>0 then
      begin
      label2.Caption:=vartostr(form5.ADOQuery1.Recordset.Fields[0].Value);
      label4.Caption:=vartostr(form5.ADOQuery1.Recordset.Fields[1].Value);
      end也可以改成:while not form5.adoquery1.eof do
    begin
      label2.Caption:=vartostr(form5.ADOQuery1.Recordset.Fields[0].Value);
      label4.Caption:=vartostr(form5.ADOQuery1.Recordset.Fields[1].Value);
      sleep(10000);//停止10秒
      form5.adoquery1.next;
    end;
      

  4.   


    对不起,是我表达不清楚,我的意思不是这样的,比如说是查询的结果返回来的是两条记录。
    001  name1 100
    002  name2 100
    使用adoquery1.recordset赋值的时候
    label2 和 label4 只是显示最后一条记录
    我是把下面的赋值语句写在按钮的clik中的,目的是想实现
    点一下按钮 两个label会显示第一条记录的 number 和 name
    再点一下 显示第二条记录
    不好意思,是我没有表达清楚,能帮忙再回答一次么?
    非常感谢!
      

  5.   

    自己搞定了,呵呵……用first 和next 就能实现从第一条 到最后一条逐条查询数据了,感谢各位的回答!