strSQL:='select *from department where indexlevel=1';
  query.SQL.Clear;
  query.SQL.Add(strSQL);
  query.Open;  j:=query.RecordCount;
  query.Recordset.MoveFirst;  for i:=0 to j-1 do
  begin
    strTest:=query.fieldbyname('DepName').AsString;
    //strTest:=query.Recordset.Fields(1).Item.Value;
    showmessage(strTest);
    query.Recordset.MoveNext;
  end;
可以计算出来有4条记录,为什么strTest显示出来的总是第一条记录,感觉移动指针指针没有用

解决方案 »

  1.   

    query.first;
    for i:=0 to j-1 do 
      begin 
        strTest:=query.fieldbyname('DepName').AsString; 
        //strTest:=query.Recordset.Fields(1).Item.Value; 
        showmessage(strTest); 
        query.next; 
      end; 
      

  2.   

    query.Next;
    最好用
    while not eof do
    begin
      ...
      next;
    end;