如何解决TTable在SQL SERVER 中的死锁问题?(100分)

  • 主题发起人 主题发起人 leonkin
  • 开始时间 开始时间
L

leonkin

Unregistered / Unconfirmed
GUEST, unregistred user!
用TTable构件在SQL SERVER 中打开一个表,当表的数据大于一定量的时候(比如1000个),在sql server enterprise manager中就会看到有一个表锁,这时再用update进行修改就会产生死锁,如何解决?
 
用Ttable没法解决。操作SQL SERVER时,不能用Ttable,只能用
tquery+tupdatesql,否则不能解决死锁的问题。
 
还是用TQuery+TUpdatesql
具体的做法是:把你的SQL 语句写到Query 里面,然后设置其cachedupdate为true
updateobject为对应的UpdateSQl。然后双击该UpdateSQl,其余的工作就很简单了。
 
最好不要用Table控件Table容易Locked Death
Tquery
sql='Select * from '+ tablename
requeslive:=True

提交时用applyupdate;
 
我刚写D程序时也用的TABLE,后来全改成QUERY了,看来你也要再来一次了。
上面的三位方法均可,但lbwave的方法要注意大小写(SQL中)。
(另外,重写一次很有收获的。真的。)
 
大型数据库上,严禁使用TABLE
 
非常正确,只能
用上面的方法.
 
如果非要用,那麼多加session!
 
可以将BDE引擎中的timeout数值设的大一些即可妨此死锁。
 
多人接受答案了。
 
后退
顶部