ClientDataSet1更新后刷新的问题(100分)

  • 主题发起人 主题发起人 isafe
  • 开始时间 开始时间
I

isafe

Unregistered / Unconfirmed
GUEST, unregistred user!
ClientDataSet1.ApplyUpdates(-1);
不能显示更新的记录程序关了再开就有了!怎么刷新???
 
procedure tBtnApplyUpdateClick(Sender: TObject);
var I: Integer;
begin
with ClientDataSetNamedo
begin
if State in [dsinsert,dsedit] then
Post;
if ChangeCount>0 then
begin
Try
I := ApplyUpdates(0);
if int = 0 then
begin
ShowMessage('数据提交成功.');
Refresh;
end;
Except
ShowMessage('Apply Update Fail!');
end;
end;
end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
ClientDataSet1.Post;
ClientDataSet1.ApplyUpdates(0);
ClientDataSet1.Refresh;
end;
 
楼主用ClientDataSet1.ApplyUpdates(-1),希望有发生错误时也继续提交,所以并没有错,不一定要用ApplyUpdates(0),现在问题在于重新打开后数据是有的,所以证明提交还是成功的。
根据我的经验,像数据提交成功后刷新没数据,一般问题出在取数据的后台(比如说ADOQuery)的过滤条件,或者是ClientDataSet的Filter条件上。
比如说用AdoQuery,添加记录时我们为了只取得空表结构,可以用Select * from talbe1 where ID=-1(假设ID的实际取值范围为ID>0), 追加记录后实际的ID值为 7,8,9,此时提交成功立即刷新后,显然是不会显示记录的。  至于Filter就不解释了
建议楼主从以上方面检查程序看看。
 
后退
顶部