遇见一个很头疼的问题,数据自动消失,请大家帮忙诊断一下是怎么回事吧(200分)

  • 主题发起人 主题发起人 幸福人生1
  • 开始时间 开始时间

幸福人生1

Unregistered / Unconfirmed
GUEST, unregistred user!
问题是这样的,我的系统是三层结构,数据库是SQL SERVER 2000,当使用存储过程把数据添加到数据库中以后,去查询分析器中查询刚才添加的数据,发现查询分析器一直在等待(正在执行批查询),我把系统退出来,而不关闭中间层,查询分析器还是在等待,把中间层退出,查询分析器就马上“批查询已完成”,但是没查询到刚才添加的那条数据,就是说,刚才那条数据没有添加到数据库中,自己消失了!<br>&nbsp; 后来我重复那样的操作,只是查询的时候用了 nolock,这时候就查询出来了,一样的是,关闭中间层,数据又消失了,说明数据还是没保存到数据库中!<br>&nbsp; 接着我再试验,如果查询的不是那条刚添加进去的数据,就能马上查询出来,不会显示“正在执行批查询”,这是不是说明刚才那条数据被锁定了呢?<br>&nbsp; 丢数据令客户的意见很大,我试大半天,也没找出问题的原因,希望高手不吝笔墨,给我指点迷津!我将不尽感激!
 
中间层的事务没有提交, 锁住了数据, 查询数据时需要加nolock查询数据(含未提交数据).<br>关闭中间层数据回滚, 未提交数据被取消, 所以数据消失.
 
估计是你的存储过程问题,存储过程中使用了事务,但没有提交。
 
我提交事务了<br>并且对可能出现错误的地方都进行了判断,如果出错就回滚事务,不会让事务一直停在那里等待的<br>我奇怪的是第一次添加数据可以,而第二次可能就不行了,难道第二次上传就没有提交事务?但是同样的存储过程啊,应该是每次一样啊,该不会是sql server的问题吧
 
那位富翁遇见过这样的问题,点拨一下吧,一直等
 
请查看锁状态。
 
好的,我学学<br>不过能不能讲的明白点啊?
 
今天又试了试,确实是事务控制的问题,出现问题了事务没有回滚,怎么会表名找不到了不会自动回滚呢?
 
接受答案了
 

Similar threads

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