天大的想不明白的问题!!!!!.用到过事务处理后,其他机子连接不上sqlserver,求您了。(50分)

  • 主题发起人 主题发起人 ddynet
  • 开始时间 开始时间
D

ddynet

Unregistered / Unconfirmed
GUEST, unregistred user!
d6+sql2000用ado连接,程序使用事务处理后,正在运行相同程序的其他电脑就连接不了
数据库,出现超时错误!!要等到使用事务处理的机器exit才行。太恐怖了!!!是否是
独占了sqlserver?如何在d6或sqlserver设置?qq在线:85825142
 
可能是内存中有某些东西没有释放
使用事务处理要考虑全面才可以
 
来听课。呵呵
 
同时要更新几个表,没有事务不可靠;
应该与没有释放内存无关; 感觉sqlserver被使用事务的程序【如销售模块】独占了
,其他部门就死也连接不上了!!!!!!!!谁有经验啊?
 
没碰到过,
在其他机子上用Query Analyzer也连不上了吗?
 
可能您的事务处理程序有问题,先把数据库停止,然后再启动即可。
一般用事务你可以加上出错处理.比如:

begin Transaction
if @@error>0

ROLLBACK TRANSACTION

else

Commit transaction
 
你打开数据库时可能采用了独占方式。
 
我也遇到类似情况,暂时的解决办法是在事务提交后将
连接断开然后连接上:
if AdoQuery1.Connection.InTransaction then
AdoQuery1.Connection.RollbackTrans ;
AdoQuery1.Connection.BeginTrans ;
//sql1
//sql2
//sql3
AdoQuery1.Connection.CommitTrans ;
AdoQuery1.Connection.Connected := FALSE ;
AdoQuery1.Connection.Connected := TRUE ;
很累,有没有简单的办法?
 
确实是事务的问题,我不久前刚碰上跟你一样的问题,也是在销售模块中。
我的解决办法是:尽可能提高事务处理的速度,无关语句不要放到事务中,不要在事务中
等待用户回应。用户输入时不要用事务,等到提交数据时才用事务处理。
暂时就这么多了,祝你好运。
 
但有一些地方不得不用事务,程序在ORACLE甚至在mysql都可正常运行,
唯独在sqlserver中有问题,我想SQL server不至于这样吧。这样多可怕!
 
后退
顶部