再问"由于超出容量限制,不能创建新事务" ( 积分: 200 )

  • 主题发起人 主题发起人 Supermay
  • 开始时间 开始时间
S

Supermay

Unregistered / Unconfirmed
GUEST, unregistred user!
1。不要以前的旧贴,都不能解决问题,<br>2.刚开始使用是没有事的<br>3。使用用SDAC控件<br>4.用法<br>从Select&nbsp;Top&nbsp;10&nbsp;*&nbsp;From&nbsp;tableA(约有9K条记录)<br>选择数据<br>更新TableB,TableC(TableB,TableC为主从表,TableC的PK为自增型ID)<br>更新方法:<br>开始事务&nbsp;&nbsp;&nbsp;[red]//在此出错[/red]<br>try<br>主表TableB<br>Select&nbsp;Top&nbsp;1&nbsp;*&nbsp;From&nbsp;TableB<br>append;<br>....<br>post;<br>从表TableC,从内存表中更新<br>Select&nbsp;Top&nbsp;1&nbsp;*&nbsp;From&nbsp;TableC<br>while&nbsp;Not&nbsp;vt.eof&nbsp;do<br>begin<br>append;<br>...<br>post;<br>vt.next;<br>end;<br>提交事务<br>except<br>回滚事务<br>end;<br>经跟踪,关闭TableA后能正常,<br>如何解决此问题<br>5.使用的SDAC中的MSQuery,没有缓冲更新,SQL探查器中看到更新TableC时,会返回自增型字段的值.其它的SQL与直接取用Insert&nbsp;Into纯SQL更新一样,<br>随数据越来越多,SQL的日志也越来越大,出现这个问题也越来越多<br>请帮解决
 
路过,顶一下,不能为楼主出力,增点人气吧。
 
看了你的打印监控日志,写了个例子,发现运行不正常,能否指教一下?<br>msn:abcus@hotmail.com<br>qq:20341547
 
收藏了此问题.
 
感觉问题出在下面的循环上,你最好记个数,看看到底循环了多少次,因为<br>大量的插入会占用大量日志空间以备提交或者回滚。<br><br>while&nbsp;Not&nbsp;vt.eof&nbsp;do<br>begin<br>append;<br>...<br>post;<br>vt.next;<br>end;
 
开始事务&nbsp;&nbsp;&nbsp;[red]//在此出错[/red]<br>在开始事务时已出错,<br>循环是有限的,一般不超20个
 
你使用ADo控件试试,这边使用ADO没有任何问题
 
把它关闭就可以了。
 
这个<br>把它关闭就可以了。&nbsp;&nbsp;<br>我现在是取用这种方法,但不是长久之计
 
除了关闭就没有其它的好办法了吗,各位?
 
1.检查日志是否已经定了大小<br>2.经常收缩日志
 
没有定日志大小,并有足够的空间<br>日志够大,清日志也不行
 
默然走过...[^]
 
默然走过...[^]
 
事务嵌套的层数限制好像是32,Sql&nbsp;Server7.0是16,总之是有限的。<br>最好换一种操作方式,使用触发器,在Sql自动管理事务的同时增加了数据完整性。
 
我遇到的情况是Open的表的数据不多,修改时的表的数据也不多,有很多其他的功能所Open的表的数据与修改的表数据都比它多,但事务操作是成功的,我不知是否与事务嵌套有关,也不明白,请高人指点,真没有办法了
 
现在大富翁是怎么了,为什么访问的人是越来越少呢?
 
你的代码不全。。&nbsp;如果数据量大&nbsp;可以&nbsp;先&nbsp;prepair&nbsp;以下。<br>你可以用一个sql&nbsp;语句写不就ok了么。。
 

Similar threads

后退
顶部