Page 1 of 1

Oraloader.LoadFromDataSet Exception

Posted: Tue 23 Sep 2014 16:41
by FSGUser
Delphi XE and XE6, ODAC 9.2.7 vs. 9.4.11, OCI 10.2.0.5.0

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;
Oraloader.LoadFromDataSet requires continuous Record Numbers.
SmartFetch mode does not work with the loader and large tables also.

Can you fix this bug please quickly.

best regards

Re: Oraloader.LoadFromDataSet Exception

Posted: Wed 24 Sep 2014 07:07
by AlexP
Hello,

Thank you for the information. We have reproduced the problem and will investigate the reasons of such behavior.

Re: Oraloader.LoadFromDataSet Exception

Posted: Wed 29 Apr 2015 11:50
by whitedeckbr
this error came back in version unidac 6.1.3
oracle Client 9i
Delphi 7
the "solution" is the same

Re: Oraloader.LoadFromDataSet Exception

Posted: Wed 06 May 2015 09:29
by AlexP
The code provided in the first post works correctly on both latest versions of UniDAC and ODAC. Please send your sample reproducing the issue to support*devart*com.

Re: Oraloader.LoadFromDataSet Exception

Posted: Thu 08 Oct 2015 18:23
by FSGUser
Hello,

in ODAC 9.6.20 Oraloader.LoadFromDataSet raise a Exception "Invalid row number"
when OraTable.UniDirectional = TRUE.

The code provided in the first post works correctly!
Only Oraloader.LoadFromDataSet raise the exception.

condition 1: OraTable.FetchRows < OraTable.RecordCount
condition 2: OraTable.FetchRows > 1

"OraTable.FetchRows := 1" is as hotfix possible, but Oraloader performance with many datasets is poor.

Can you fix this bug please quickly.
I want to renew the ODAC subscription, but only fault has been corrected.

best regards

Re: Oraloader.LoadFromDataSet Exception

Posted: Mon 12 Oct 2015 09:27
by AlexP
Thank you, we have reproduced the described case, and will fix it as soon as possible.

Re: Oraloader.LoadFromDataSet Exception

Posted: Thu 22 Oct 2015 10:42
by AlexP
We have already fixed the problem. The fix will be included in the next version.

Re: Oraloader.LoadFromDataSet Exception

Posted: Thu 22 Oct 2015 17:37
by FSGUser
Can you give a date for the release of new version?

Thank's

Re: Oraloader.LoadFromDataSet Exception

Posted: Fri 23 Oct 2015 10:40
by AlexP
We plan to release a new version next month.