A couple of bugs in 1.00.0.6

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
aoven
Posts: 9
Joined: Wed 01 Aug 2007 00:26

A couple of bugs in 1.00.0.6

Post by aoven » Thu 10 Jul 2008 10:38

Bug #1: FTransactions accessed from FreeIConnection() after being freed in TCustomDAConnection.Destroy().

Solution: Call to FTransactions.Free() needs to be moved after the call to FreeIConnection() in TCustomDAConnection.Destroy().

Bug #2: TCustomDADataSet.SetFetchAll() forwards the wrong (i.e. old) value to FIRecordSet.SetProp(), effectively preventing FetchAll := False to take effect.

Solution: Change last parameter in FIRecordSet.SetProp(prFetchAll, FetchAll) to FFetchAll.

Also: Property TCustomDADataSet.FetchAll is protected in UniDAC but was public in older versions of SDAC/ODAC. Would it be possible to make it public again so it can be accessed normally through TCustomDADataSet references?

Thank you.

Plash
Devart Team
Posts: 2844
Joined: Wed 10 May 2006 07:09

Post by Plash » Fri 11 Jul 2008 07:04

Thank you for the information. We have fixed these bugs. The fix will be included in the next build of UniDAC.

In UniDAC the default value of the FetchAll property depends on the provider. For Oracle and InterBase the default is False. For SQL Server and MySQL the default is True. That's why we make the FetchAll property of TCustomDADataSet protected and add the FetchAll to SpecificOptions for each provider.

aoven
Posts: 9
Joined: Wed 01 Aug 2007 00:26

Post by aoven » Fri 11 Jul 2008 07:55

In UniDAC the default value of the FetchAll property depends on the provider. For Oracle and InterBase the default is False. For SQL Server and MySQL the default is True.
Ah, I was not aware of this. So what you are saying is I should always set FetchAll through DataSet.SpecificOptions as opposed to directly?

Plash
Devart Team
Posts: 2844
Joined: Wed 10 May 2006 07:09

Post by Plash » Fri 11 Jul 2008 08:04

Yes, you should use the SpecificOptions property of TCustomUniDataSet to set FetchAll.

aoven
Posts: 9
Joined: Wed 01 Aug 2007 00:26

Post by aoven » Fri 11 Jul 2008 08:25

Great! Thank you.

Post Reply