Hello,
I have encountered a serious problem with DataAbstract MemDataTable. When used with Delphi XE3, the fields of type datString causes an AV exception. From the stack trace it seems the problem lies in the TDAMemoryDataset.InternalSetFieldData() method, in which the Move() call takes the defined field size, where the dynamically allocated source buffer can be shorter. I have prepared small sample project to demonstrate the issue.
daSample.zip (80.3 KB)
Regards from Prague,
Jaroslav
*** Stack trace:
System.Move(???,???,???)
uDAMemDataset.TDAMemoryDataset.InternalSetFieldData(???,(86, 97, 108, 117, 101, 32, 35, 51, 50, 48, 56, 51, 0))
uDAMemDataset.TDAMemoryDataset.SetFieldData(???,(86, 97, 108, 117, 101, 32, 35, 51, 50, 48, 56, 51, 0))
Data.DB.TDataSet.SetFieldData($18C9880,(86, 97, 108, 117, 101, 32, 35, 51, 50, 48, 56, 51, 0),True)
Data.DB.TField.SetData((86, 97, 108, 117, 101, 32, 35, 51, 50, 48, 56, 51, 0),True)
Data.DB.TStringField.SetAsAnsiString(???)
Data.DB.TStringField.SetAsString('Value #32083')
uDAFields.TDACustomField.SetAsString(???)
Unit1.TForm1.Button1Click($18F0140)
...