在Delphi XE中,我有一个TClientDataSet
,它从TADOQuery
获取数据,我向它添加一个新条目。代码看起来像这样:
with DataModule.MyClientDataSet begin
Append;
FieldByName('ID').AsInteger := SomeID;
FieldByName('STRING').AsString := SomeString;
FieldByName('DATE').AsDateTime := SomeDate;
Post;
ApplyUpdates(-1);
end;
客户端数据集背后的SQL是一个简单的
SELECT *
FROM mytable
WHERE x = :x
AND y = :y
其中x
和y
是字符串。
变量的值都已设置,我可以看到的唯一不规则的事情是日期设置为1899-12-30。
对ApplyUpdates(-1);
的调用会导致以下异常:
-2147217900不是字段' ERROR_CODE'的有效值。允许的范围是0到4294967295
表没有有一列ERROR_CODE
。那么这个错误信息究竟意味着什么?
答案 0 :(得分:4)
Delphi XE中的DataSetProvider中存在一个错误,该错误已通过其中一个修补程序修复 http://edn.embarcadero.com/article/41312#3RADStudioXEHotfixforRAIDQC
在Delphi XE2中也发现了同样的错误,并在Update 3中得到了修复 http://qc.embarcadero.com/wc/qcmain.aspx?d=88928
以下是针对Delphi XE的此错误的另一个QC报告 http://qc.embarcadero.com/wc/qcmain.aspx?d=100723