苦求“由于超出容量限制,不能创建新事务”-在线等,在线补充,一点一点的测试。
本帖最后由 yunsuifeng2009 于 2013-05-18 10:53:13 编辑 delph 的大侠:我现在用TSQLDataSet + TDataSetProvider + TClientDataSet
开发数据库,一个很简单的操作。 from里面只有 1个TDataSetProvider 1个TClientDataSet控件就能完成保存的操作。 ClientDataSet1.ApplyUpdates(0)。
但是只要from里面有其他数据控件,比如TSQLQuery,在ClientDataSet1.ApplyUpdates(0)时就会出现
“由于超出容量限制,不能创建新事务”
我都要疯了。我用delphi一直用BDE,用了十多年,现在改用这个高效率数据控件,老是出现这个错误。我的项目都延后了很多了。仅仅搞这个问题就用了我将近1个月时间。之前碰到这个问题,为了应付项目进度。我都是用TSimpleDataSet来临时解决的。想以后再改回TClientDataSet,现在居然使用TSimpleDataSet也出现这个问题。我都要崩溃了。
原来用delphi 2007 + sql200
现在怀疑是sql版本问题,就用了sql2005,还是不行。不会这么邪吧。难道delphi不适用开发数据库了吗?
我到底是在那个简单环节出错了啊。求帮忙。
补充一下
1、我是按李维Delphi 2006高效数据库程序设计一书的教程设置的。
2、我现在把TSQLQuery一用完就free,即sqlquery1.free。就不会出现这个错误。必须保持在ClientDataSet1.ApplyUpdates(0)时,所有其他的数据控件全部free,即只能存在一个数据控件在from里面。否则就出现“由于超出容量限制,不能创建新事务”,这不和逻辑啊!难道TClientDataSet不能和其他数据控件共存????
会不会是delphi 2007版本的问题?
事务 数据库 SQL Delphi
[解决办法]
你这个问题应不是前端程序问题,而是出在数据库上,最大的可能是日志文件大小没有设成自动增长,而是限制了大小,造成了不能写事务日志而不能更新数据。你可以到企业管理器(SQL 2000)或SQL管理平台(SQL 2005)找到这个数据库,点右键属性,文件,找到日志文件,将“自动增长”勾上。
[解决办法]
不应该是delphi 问题,估计是数据库端的限制
我以前在datamoudle中放了很多ClientDataSet ,没有一点问题
[解决办法]
我觉得你可以先确定问题所在,是数据库问题还是BDE的问题或ClientDataSet的问题。直接在数据库插入、修改记录,看是否存在问题?如没问题。再在Delphi 改用ADO连接试下是否出问题?这样可以确定问题在哪块。