Page 1 of 2

access violation in sdac

Posted: Fri 28 Feb 2014 09:22
by Ludek
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.

Re: access violation in sdac

Posted: Fri 28 Feb 2014 11:09
by AlexP
Hello,

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

Re: access violation in sdac

Posted: Fri 28 Feb 2014 12:05
by Ludek
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...

Re: access violation in sdac

Posted: Fri 28 Feb 2014 14:41
by Ludek
nothing. i only found out, that AV disappears, if i remove all memo fields from the dataset being posted...

Re: access violation in sdac

Posted: Mon 03 Mar 2014 11:20
by AlexP
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.

Re: access violation in sdac

Posted: Tue 04 Mar 2014 08:52
by Ludek
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...

Re: access violation in sdac

Posted: Tue 04 Mar 2014 09:34
by Ludek
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.

Re: access violation in sdac

Posted: Tue 04 Mar 2014 10:49
by AlexP
Thank you for the information, we have reproduced the problem and will investigate the reasons for this kind of behaviour.

Re: access violation in sdac

Posted: Tue 11 Mar 2014 06:55
by Ludek
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... ;) )

Re: access violation in sdac

Posted: Tue 11 Mar 2014 10:53
by AlexP
This problem is already fixed.

Re: access violation in sdac

Posted: Tue 11 Mar 2014 11:51
by Ludek
nice :)
do you have an estimate of date, when the corrected version will be released?

Re: access violation in sdac

Posted: Thu 13 Mar 2014 09:09
by AlexP
We plan to release the new version next month.

Re: access violation in sdac

Posted: Tue 08 Apr 2014 06:50
by Ludek
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.

Re: access violation in sdac

Posted: Tue 08 Apr 2014 12:27
by AlexP
We plan to release the new version after the 20th, this month

Re: access violation in sdac

Posted: Wed 30 Apr 2014 14:16
by Ludek
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?!