三层中TClientDataSet刷新问题。
希望点TDBNavigator刷新操作时,判断是否修改数据,如果修改了,则选择是否保存数据。通过跟踪代码,先直接跳过(也就是修改数不大于0),弹出英文提示(大意是刷新操作前要更新数据),再点TDBNavigator的刷新按钮就正常了。问题是第一次点时,ChangeCount不大于0,再点一次ChangeCount就大于0了。问题何在?
procedure TFormUser.DBNavigatorUserBeforeAction(Sender: TObject;
  Button: TNavigateBtn);
begin
  case Button of
    nbRefresh:
    begin
      if DataModuleQBXZ.ClientDataSetUser.ChangeCount>0 then
      begin
        if (Application.MessageBox('警告:有修改的信息未保存到服务器,需要保存吗?','警告',MB_OKCANCEL) = IDOK) then
          DataModuleQBXZ.ClientDataSetUser.ApplyUpdates(-1)
        else
          DataModuleQBXZ.ClientDataSetUser.CancelUpdates;
      end;
    end;
  end;
end;