SDAC 3.55

Discussion of open issues, suggestions and bugs regarding SDAC (SQL Server Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
yeohray
Posts: 56
Joined: Mon 26 Mar 2007 01:25

SDAC 3.55

Post by yeohray » Mon 26 Mar 2007 01:33

We're currently still using SDAC 3.55 and haven't upgraded because it's adequate for our needs. Looking at the change history, it mentions the following for version 3.70

3.70.1.27 12.05.06
- Bug with using alternative memory managers fixed

We're using FastMM in our application. Could you pls elaborate on what the bug is, so we can decide if we need to upgrade?

Thanks.

Jackson
Posts: 512
Joined: Thu 26 Jan 2006 10:06

Post by Jackson » Mon 26 Mar 2007 14:09

There was a bug in SDAC with optimized storing of extended strings.
The manner in which some memory managers allocate headers of memory blocks differs from the standard memory manager bahaviour.
If you have no errors with SDAC in your project, there is no need to upgrade. Otherwise, we recommend you to upgrade to the last SDAC version.

yeohray
Posts: 56
Joined: Mon 26 Mar 2007 01:25

Post by yeohray » Mon 26 Mar 2007 15:33

What are extended strings? Thanks.

Jackson
Posts: 512
Joined: Thu 26 Jan 2006 10:06

Post by Jackson » Tue 27 Mar 2007 09:17

There is a property TCustomDADataSet.Options.FlatBuffers. It controls how dataset treats data of ftString and ftVarBytes fields. When set to True, all data fetched from the server is stored in record pdata without unused tails. When set to False, data of ftString and ftVarBytes fields with length more than 32 bytes is stored in preallocated memory blocks. Such fields are called "extended strings". Please see description of the FlatBuffers property in SDAC help for more information.

yeohray
Posts: 56
Joined: Mon 26 Mar 2007 01:25

Post by yeohray » Wed 28 Mar 2007 03:27

I see that FlatBuffers are by default 'false'. Did the bug affect applications that used FastMM as the memory manager?

Thanks.

Jackson
Posts: 512
Joined: Thu 26 Jan 2006 10:06

Post by Jackson » Wed 28 Mar 2007 12:05

This bug affects programs that use FastMM, but only if string fields contain data more than 2000 bytes.
If you don't have the 'DisposeBuf failed' assertion failure or Access Violation exception, your program doesn't containt conditions under which this bug appears.

yeohray
Posts: 56
Joined: Mon 26 Mar 2007 01:25

Post by yeohray » Wed 28 Mar 2007 15:34

Thank you for the clarification.

Post Reply