Oraloader.LoadFromDataSet Exception

Discussion of open issues, suggestions and bugs regarding ODAC (Oracle Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
FSGUser
Posts: 3
Joined: Tue 23 Sep 2014 15:23

Oraloader.LoadFromDataSet Exception

Post by FSGUser » Tue 23 Sep 2014 16:41

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

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: Oraloader.LoadFromDataSet Exception

Post by AlexP » Wed 24 Sep 2014 07:07

Hello,

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

whitedeckbr
Posts: 1
Joined: Wed 29 Apr 2015 11:46

Re: Oraloader.LoadFromDataSet Exception

Post by whitedeckbr » Wed 29 Apr 2015 11:50

this error came back in version unidac 6.1.3
oracle Client 9i
Delphi 7
the "solution" is the same

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: Oraloader.LoadFromDataSet Exception

Post by AlexP » Wed 06 May 2015 09:29

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.

FSGUser
Posts: 3
Joined: Tue 23 Sep 2014 15:23

Re: Oraloader.LoadFromDataSet Exception

Post by FSGUser » Thu 08 Oct 2015 18:23

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

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: Oraloader.LoadFromDataSet Exception

Post by AlexP » Mon 12 Oct 2015 09:27

Thank you, we have reproduced the described case, and will fix it as soon as possible.

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: Oraloader.LoadFromDataSet Exception

Post by AlexP » Thu 22 Oct 2015 10:42

We have already fixed the problem. The fix will be included in the next version.

FSGUser
Posts: 3
Joined: Tue 23 Sep 2014 15:23

Re: Oraloader.LoadFromDataSet Exception

Post by FSGUser » Thu 22 Oct 2015 17:37

Can you give a date for the release of new version?

Thank's

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: Oraloader.LoadFromDataSet Exception

Post by AlexP » Fri 23 Oct 2015 10:40

We plan to release a new version next month.

Post Reply