access violation in sdac

Discussion of open issues, suggestions and bugs regarding SDAC (SQL Server Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Ludek
Posts: 296
Joined: Thu 12 Oct 2006 09:34

access violation in sdac

Post by Ludek » Fri 28 Feb 2014 09:22

hi,
after upgrade from sdac 5.0.0.5 to 6.9.17 (and from delphi xe to delphi xe5) i'm getting such access violation deep in the sdac code:

Code: Select all

(00015B0C) [08176B0C] MemUtils.CopyBuffer (Line 522, "MemUtils.pas" + 0)
(00020C93) [08181C93] MemData.TData.GetFieldData (Line 2866, "memdata.pas" + 62)
(0022779B) [0838879B] CRAccess.TCRRecordSet.GetFieldData (Line 2917, "CRAccess.pas" + 45)
(00068649) [06FA9649] System.Variants.@VarClr
(002277BD) [083887BD] CRAccess.TCRRecordSet.GetFieldData (Line 2918, "CRAccess.pas" + 46)
(0024B44A) [083AC44A] OLEDBAccess.TOLEDBRecordSet.GetFieldData (Line 7684, "OLEDBAccess.pas" + 11)
(00020E08) [08181E08] MemData.TData.GetField (Line 2898, "memdata.pas" + 21)
(0024B482) [083AC482] OLEDBAccess.TOLEDBRecordSet.GetField (Line 7692, "OLEDBAccess.pas" + 3)
(0018C482) [082ED482] MemDS.TMemDataSet.GetFieldData (Line 1928, "MemDS.pas" + 8)
(0018C27F) [082ED27F] MemDS.TMemDataSet.GetFieldData (Line 1869, "MemDS.pas" + 1)
(000215A9) [081825A9] MemData.TData.GetNullByBlob (Line 3178, "memdata.pas" + 11)
(000215E4) [081825E4] MemData.TData.GetNullByBlob (Line 3184, "memdata.pas" + 17)
(0024B3B4) [083AC3B4] OLEDBAccess.TOLEDBRecordSet.GetNull (Line 7661, "OLEDBAccess.pas" + 3)
(00020D5E) [08181D5E] MemData.TData.GetField (Line 2878, "memdata.pas" + 1)
(0024FCA4) [083B0CA4] OLEDBAccess.TOLEDBRecordSet.CheckBCDOverflow (Line 9302, "OLEDBAccess.pas" + 4)
(0024B482) [083AC482] OLEDBAccess.TOLEDBRecordSet.GetField (Line 7692, "OLEDBAccess.pas" + 3)
(0002723D) [0818823D] MemData.TData.InternalGetObject (Line 5627, "memdata.pas" + 3)
(000272C0) [081882C0] MemData.TData.GetObject (Line 5639, "memdata.pas" + 4)
(0018E8D0) [082EF8D0] MemDS.TMemDataSet.InternalPost (Line 2998, "MemDS.pas" + 14)
(001F9F6D) [0835AF6D] DBAccess.TCustomDADataSet.InternalPost (Line 7979, "DBAccess.pas" + 6)
(00407309) [07348309] Data.DB.TDataSet.CheckOperation
(00406E28) [07347E28] Data.DB.TDataSet.Post
(0018EA32) [082EFA32] MemDS.TMemDataSet.Post (Line 3021, "MemDS.pas" + 1)
(0028B9E5) [083EC9E5] MSAccess.TCustomMSDataSet.Post (Line 4192, "msaccess.pas" + 1)
....
i can just say, there are some nested onchange event handlers, and i'm using this special setting:
DataTypeMap.AddDBTypeRule(msReal, ftFloat);

do you have an idea? with old sdac, everything works fine.

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

Re: access violation in sdac

Post by AlexP » Fri 28 Feb 2014 11:09

Hello,

Please send the scripts for creating all the used DB objects and a sample reproducing the problem to alexp*devart*com

Ludek
Posts: 296
Joined: Thu 12 Oct 2006 09:34

Re: access violation in sdac

Post by Ludek » Fri 28 Feb 2014 12:05

Well, I wanted to eliminate this, because it will need hours/days to create something reproducible and not include alle the millions LOC... I'll try to debug a little. Sending code will be the last option...

Ludek
Posts: 296
Joined: Thu 12 Oct 2006 09:34

Re: access violation in sdac

Post by Ludek » Fri 28 Feb 2014 14:41

nothing. i only found out, that AV disappears, if i remove all memo fields from the dataset being posted...

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

Re: access violation in sdac

Post by AlexP » Mon 03 Mar 2014 11:20

Try to create a small application demonstrating the problem and send it to us. Unfortunately, without reproducing the problem, we can't help you solve it.

Ludek
Posts: 296
Joined: Thu 12 Oct 2006 09:34

Re: access violation in sdac

Post by Ludek » Tue 04 Mar 2014 08:52

apparently a call to "lookup" method during dataset.state=dsinsert on a dataset with blobs makes some internal sdac structures corrupted... I hope that example comes soon...

Ludek
Posts: 296
Joined: Thu 12 Oct 2006 09:34

Re: access violation in sdac

Post by Ludek » Tue 04 Mar 2014 09:34

just sent an example to alexp*devart*com

i think it happens under following circumstances:

1. cached updates active
2. filtered property active
3. at least one memo field
4. at lease one record in dataset posted, one additional record in state = dsInsert
5. call lookup method.

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

Re: access violation in sdac

Post by AlexP » Tue 04 Mar 2014 10:49

Thank you for the information, we have reproduced the problem and will investigate the reasons for this kind of behaviour.

Ludek
Posts: 296
Joined: Thu 12 Oct 2006 09:34

Re: access violation in sdac

Post by Ludek » Tue 11 Mar 2014 06:55

are there any new about this "kind of behaviour"? (i personally would not call it "kind of behaviour", but probably "catastrophic failure", "epic fail", "critical showstopper" or anything like that... ;) )

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

Re: access violation in sdac

Post by AlexP » Tue 11 Mar 2014 10:53

This problem is already fixed.

Ludek
Posts: 296
Joined: Thu 12 Oct 2006 09:34

Re: access violation in sdac

Post by Ludek » Tue 11 Mar 2014 11:51

nice :)
do you have an estimate of date, when the corrected version will be released?

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

Re: access violation in sdac

Post by AlexP » Thu 13 Mar 2014 09:09

We plan to release the new version next month.

Ludek
Posts: 296
Joined: Thu 12 Oct 2006 09:34

Re: access violation in sdac

Post by Ludek » Tue 08 Apr 2014 06:50

Would you mind releasing the new version until is too late and russian forces come? :? Or at least publishing some patch for the sources? I'm already a little nervous, as i'm reading the news...
Thanks, Ludek.

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

Re: access violation in sdac

Post by AlexP » Tue 08 Apr 2014 12:27

We plan to release the new version after the 20th, this month

Ludek
Posts: 296
Joined: Thu 12 Oct 2006 09:34

Re: access violation in sdac

Post by Ludek » Wed 30 Apr 2014 14:16

first reply: no info about availability
second: "next month"
third: "after 20th this month"
today is april 30, after 5pm of your time.

the bug is critical showstopper and i am waiting already 2 months.

are you joking?!

Post Reply