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)
....
DataTypeMap.AddDBTypeRule(msReal, ftFloat);
do you have an idea? with old sdac, everything works fine.