在数据库中,怎样截获update或insert时的错误,也就是用户已经提交了update或insert事件但由于多用户同时提交造成滞留,而暂时不能提交?请大家帮

  • 主题发起人 主题发起人 chenshan
  • 开始时间 开始时间
C

chenshan

Unregistered / Unconfirmed
GUEST, unregistred user!
在数据库中,怎样截获update或insert时的错误,也就是用户已经提交了update或insert事件但由于多用户同时提交造成滞留,而暂时不能提交?请大家帮忙,急!!!!!!!!!?(50分)<br />
 
在数据库中加一"引用Lock",当有用户使用该数据库时就返回等待信息/传递一条信息之类的什么
东西!(此乃为一设想)
 
怎么没人回答!!!!
 
用什么结构?
c/s 还是多层?
 
期待回答
 
使用异常处理
 
chenshan:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
给两个设想,供你参考:
1、用LOCK的方法,同一时间内只有一个用户能提交和修改。
2、在数据库中设置一个特殊字段,然后给每个欲做修改、增加等操作的用户一个唯一
的标示。当两个或两个以上的用户做提交操作时,按顺序来,谁的信息先到,就往特殊字段
里写一个特殊值,如果在这时有第二个用户的信息也提交上来,则判断特殊字段是否有
特殊值,如有,则做一提示。提交完毕后,取消特殊值,然后再进行第二个操作,依次类推。
 
李维的书真的很好!看书吧
 
在TQUERY中有一个事件UpdateError,以下是范例:
if UpdateKind=ukDelete then
begin
MessageDlg('该记录已经被引用,不能删除!',mtWarning,[Mbok],0);
UpdateAction:=uaAbort;
end
else
begin
MessageDlg('角色表保存出错,请退出新增表单,重新运行',mtWarning,[Mbok],0);
UpdateAction:=uaAbort;
end;
 
分已发出
 
还是用事务管理吧,如果有用户已做修改(包括modify,delete)
它将自动回滚
 
分已发出
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部