<font size=6 color=red>delphi4.0+sql server6.5加锁问题!</font>(100分)

  • 主题发起人 主题发起人 hawkview
  • 开始时间 开始时间
H

hawkview

Unregistered / Unconfirmed
GUEST, unregistred user!
我将用delphi4.0+sql server6.5完成一系统,可能有用户同时对
某记录进行操作我在程序中不处理,是否会冲突?系统有无自己的
措施?若要在程序中加锁,如何处理请多指教!!!
 
我知道我知道,这个问题我以前就碰到过,可能是BUG吧。
当搜索大于约150条记录时,就会出现死锁的状况。
我用的是最傻的办法,就是大量搜索后让DELPHI再OPEN一个空表(TABLE),死锁自然解除
 
当有多个请求对同一记录进行更新或者写操作,会引起冲突。
系统解决冲突的办法是等待。如果超时则会有冲突的一方更新失败,
返回错误信息。解决死锁的方法有很多,有一整套设计和解决方案,
各数据库系统是有差别的。找一些比较深的数据库方面的书会讲到这个问题。
 
如果第一人在第二人修改期间提交了修改记录,第二人是否能够成功修改
取决于修改的方式:1.所有字段全相等, 2.只比较关键字段.
当然,用sqlserver绝对不能使用ttable.
 
1)复杂修改最好是用存储过程
2)用query
3)用事务
4)搜索前面的问题
 
如果数据在读出之后被更改,提交时会出错,最简单的方法是取消本次提交,再刷新
 
ADO锁定属性用悲观锁,cursor类别用server的就可以让sql server锁定记录。
这样比较适合操作人员的习惯。
 
附加功能 将问题提前
 
多人接受答案了。
 
后退
顶部