为什么TClientDataSet 的 ApplyUpdates(-1)只能添加不能修改?郁闷了好久,请各位帮忙解决一下!!!

DaisyM 2004-08-16 04:37:34
我定义了两个TClientDataSet,
TClientDataSet *tMZJLK;
TClientDataSet *tMZJLXXK;
分别两个表进行操作,tMZJLXXK 连接的是从表, tMZJLK 连接的是主表,
运行 tMZJLXXK->ApplyUpdates(-1); 可以将数据存入主表的临时表中
而运行到 tMZJLXXNRK->ApplyUpdates(-1); 时只能添加记录,而不能对原有的记录进行修改;
如果我改成 tMZJLXXNRK->ApplyUpdates(0); 则既不能添加也不能修改。
问题发生在哪里,我找了好久,请各位帮帮忙?

...全文
173 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
DaisyM 2004-08-17
  • 打赏
  • 举报
回复
我的从表里面没有定义主键,也没有任何约束,只要类型一致就以可保存的。
DaisyM 2004-08-17
  • 打赏
  • 举报
回复
我在
void __fastcall TEMMZJLForm::tMZJLXXNRKReconcileError(
TClientDataSet *DataSet, EReconcileError *E, TUpdateKind UpdateKind,
TReconcileAction &Action)
{
ShowMessage(Action); //返回结果 1
ShowMessage(E->Message); // Invalid Parameter
ShowMessage(E->Context); // 空
ShowMessage(E->HelpContext); // 0
ShowMessage(E->ErrorCode); // 9986
ShowMessage(UpdateKind); // 1
ShowMessage(E->PreviousError); // 0
}
我察看过修改前后的值,是没有问题的呀
DaisyM 2004-08-17
  • 打赏
  • 举报
回复
TO qiuafa:
你是指修改前的记录跟修改后的记录之间的关联吗?
qiuafa 2004-08-17
  • 打赏
  • 举报
回复
是关联问题把。
DaisyM 2004-08-16
  • 打赏
  • 举报
回复
刚开始我以为是 ApplyUpdates(-1) 在 执行前被清空了,但后来发现不是,
我在 ApplyUpdates(-1);前后添加了
SaveToFile("c:\\111.txt",dfXML)
SaveToFile("c:\\222.txt",dfXML)
发现这两个文件是一模一样的,
我用同样的方法取了其他的TClientDataSet 的纪录发现没有 RowState 这个属性

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧