三层master/detail表刷新问题!高手请进(再加100分)(100分)

  • 主题发起人 liuxianghui
  • 开始时间
L

liuxianghui

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi 4 C/S
有这样的master/detail表,建在InterBase,结构如下:
Table2为detail表,key is main_id
database-->table1-->provider1-->clientdataset1->dsource1
| | |
| main_id,Dsource DataSetField
| A |
| | V
+--->table2 clientdataset2->dsource2
with datamodule1.clientdataset1do
begin
try
applyupdates(-1);
refresh;
except
cancelupdates;
end;
end;
对主表记录进行删除,可以刷新;
对主表记录进行添加,applyupdates后,cds2的changecount仍
大于0,不可刷新,cancelupdates报告无法操作。
百思不得其解,望高手指点迷津。

刚才将二表转为Paradox格式,问题仍然存在,第一次可以applyupdates,不刷新
时无报错,再次添加记录进行applyupdates,报错‘表已被使用’,
hangecount=1。我使用的是DbNavigator,连到clientdataset1(主表);
奇怪的是,对记录进行修改和删除,主副表均完全正常,而添加记录时却不行,实
际上applyupdates后数据已存入表中,为何changecount不清零,且不报错?
另:我说的添加是指主副表同时添加记录。分开添加无问题。
 
我从来不用 table ,看着这么多分没办法。。
try
添加主表
finally
添加副表
以前我用query是这样做的。
帮你提前:}
 
添加完后应按顺序提交
Master.ApplyUpdates;
Detail.ApplyUpdates;
然后再Refresh
 
我已经解决了。安装D4 pack3。
 
多人接受答案了。
 
顶部