with ADOQueryAC do
                 begin
                    close;
                    SQL.Text := szSQL;
                    try
                       Active := True;
                    except
                       close;
                       Result := False;
                       FormWait.Close;
                       MessageDlg('数据存取错误,稍后重试!', mtError, [mbOK], 0);
                       Exit;
                    end;
                    First;
                    iRow := 0;
                    iRowCount := RecordCount;
                    //MyStringGrid.RowCount := iRowCount + 1;
                    FormWait.GaugeWait.MaxValue := iRowCount;
                    FormWait.LabelTitle.Caption := '正在读出数据...请等候!';
                    while not Eof do
                    begin
                       iRow := iRow + 1;
                       if iRow > 1 then
                          MyStringGrid.RowCount := iRow + 1;
                       for i := 1 to iCol do begin
                           szTempStr := FieldByName(MyStringGrid.GridCols[i].ColName).AsString;
                           MyStringGrid.SetCellValS(iRow, MyStringGrid.GridCols[i].ColName, szTempStr);
                       end;
                       Application.ProcessMessages;
                       FormWait.GaugeWait.Progress := iRow;
                       Next;
                    end;
                    close;   //出错地点。
                 end;执行到close 处程序报错:“BOF或 EOF中有一个是真,或者当前的纪录被删除,所需
的操作要求一个当前的纪录”
什么原因啊?