起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: sender

BeforeApplyUpdates事件加入代码无法更到数据库的问题[请求]**

[复制链接]
 楼主| 发表于 2007-4-11 13:37:21 | 显示全部楼层

谢谢 atiger

谢谢  atiger
我也再想想办法。
回复 支持 反对

使用道具 举报

发表于 2007-4-16 15:11:23 | 显示全部楼层
数据集的提交其实是通过提交DeltaData到X3服务器来提交修改的数据的
在ApplyUpdates调用时候,就已经把DeltaData生成了,所以在BeforeApplyUpdates事件中再对数据集修改已经没有作用了,只能在下次提交时候才会起作用了
回复 支持 反对

使用道具 举报

发表于 2007-4-16 15:13:14 | 显示全部楼层
function TDataSet.ApplyUpdates(MaxErrors: Integer): Integer;
var
  S: string;
  E: Exception;
begin
  CheckBrowseMode;
  // 注意:这里用的是 ChangeCount 不是 UpdatesPending。
  if ChangeCount = 0 then
    Result := 0
  else
    if Connection.Transaction.Active and not Connection.Transaction.Immediate then
    begin
      if FUpdating then raise Exception.Create('正在提交');
      FUpdating := True;
      DoApplyUpdates(Delta, MaxErrors, Result);
    end
    else
    begin
      Reconcile(DoApplyUpdates(Delta, MaxErrors, Result));
      if FReconcileError <> '' then
      begin
        S := FReconcileError;
        FReconcileError := '';
        E := Exception.Create('提交数据失败:' + S);
        TransactionCommitError(Connection.Transaction, E, nil);
        raise E;
      end;
    end;
end;
回复 支持 反对

使用道具 举报

发表于 2007-4-19 09:42:12 | 显示全部楼层
结贴了,有问题请重新起帖子
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-4 18:21 , Processed in 0.041772 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表