这里遇到了一个小情况,我直到最近才使用TClientDataSet(它需要midas.dll)所以现在我面临一个非常尴尬的错误,不是很具描述性:
项目E:\ Work \ XXX \ binary \ XXX.exe出现错误消息:'访问冲突位于0x00678827:写入地址0x00030a38'。流程已停止。使用步骤或运行继续。
只要我尝试在clientdataset中设置字段的值(我将其用作内存数据集),就会发生这种情况:
with ADataModule do begin
cdsTest.Append;
cdsTestAField.AsString := ATableField.AsString;
// ...
end;
两个字段都是TStringField,cdsTestAField的大小为64,ATableField的大小为32
注意:我之前正在调用CreateDataSet方法,这只发生在字符串字段中,任何帮助都会受到高度赞赏。
感谢您的时间。
答案 0 :(得分:3)
ATableField来自哪里?难道它是对已经释放的对象的无效引用吗?
此外,您可以在项目中包含midaslib.pas以消除使用外部midaslib.dll。但是,它会使你的项目稍微大一点,因为你基本上是在你的exe文件中编译dll。