Hello,
since ODAC 9.3.8 Oraloader.LoadFromDataSet raise a Exception "Invalid row number"
when (OraTable.UniDirectional = TRUE) AND (OraTable.RecNo > OraTable.FetchRows)
The following code shows the cause:
Code: Select all
procedure TForm2.Button1Click(Sender: TObject);
var i : Integer;
begin
OraTable1.UniDirectional := True; //Table Recordcount > 4000000 !!!
OraTable1.FetchRows := 100;
OraTable1.Options.QueryRecCount := True;
OraTable1.Open;
lbRecCount.Caption := IntToStr(OraTable1.RecordCount);
lbRecNo.Caption := IntToStr(OraTable1.RecNo);
// Value = 1
for i := 1 to OraTable1.FetchRows do
begin
OraTable1.Next;
end;
lbRecNo.Caption := IntToStr(OraTable1.RecNo); //
// <= ODAC 9.2.7 Value = 101
// >= ODAC 9.3.8 Value = 1 !!!
end;
SmartFetch mode does not work with the loader and large tables also.
Can you fix this bug please quickly.
best regards