本人在使用Delphi7的DbExpress数据引擎时,遇到一个问题,现无法解决,希望大家给点建议:
(1)现象:
在如下的代码中
Try
l_TrinId.TransactionID:=1;
l_TrinId.IsolationLevel:=xilReadCommitted;
Dm.Sql_Db.StartTransaction(l_TrinId); If Sds_Photo.IsEmpty Then
Begin
Sds_Photo.Append;
....
Sds_Photo.Post;
End
IF Sds_Photo.ApplyUpdates(0)>0 Then
Raise Exception.Create('保存信息提交数据库失败');
Dm.Sql_Db.Commit(l_TrinId);
Except
on E: Exception do
Dm.Sql_Db.Rollback(l_TrinId);
End;
在执行到Dm.Sql_Db.Commit(l_TrinId);时,会不定期的遇到Delphi报错“不能启动新的事务处理”
(2)这个报错不固定,有时每操作一次就报错,有时操作1、2个小时才报错。
(3)一旦报错,则后面的任何事务开始Dm.Sql_Db.StartTransaction(l_TrinId);
都会报错,程序无法在使用。只有退出程序,再次进入,才可能继续。
(4)我在Win2000和win98下都试过了,现象一样。
(1)现象:
在如下的代码中
Try
l_TrinId.TransactionID:=1;
l_TrinId.IsolationLevel:=xilReadCommitted;
Dm.Sql_Db.StartTransaction(l_TrinId); If Sds_Photo.IsEmpty Then
Begin
Sds_Photo.Append;
....
Sds_Photo.Post;
End
IF Sds_Photo.ApplyUpdates(0)>0 Then
Raise Exception.Create('保存信息提交数据库失败');
Dm.Sql_Db.Commit(l_TrinId);
Except
on E: Exception do
Dm.Sql_Db.Rollback(l_TrinId);
End;
在执行到Dm.Sql_Db.Commit(l_TrinId);时,会不定期的遇到Delphi报错“不能启动新的事务处理”
(2)这个报错不固定,有时每操作一次就报错,有时操作1、2个小时才报错。
(3)一旦报错,则后面的任何事务开始Dm.Sql_Db.StartTransaction(l_TrinId);
都会报错,程序无法在使用。只有退出程序,再次进入,才可能继续。
(4)我在Win2000和win98下都试过了,现象一样。
解决方案 »
- 怎么用timer来实现几张图片的动态切换,闪烁
- *************如何才能让女朋友HuaiYun呢,大家给支个招****************
- 怎么样把一个数据集插入到数据库?
- 求一个任意日期加上60天后得出年、月、日的算法
- 学术腐败,计算机等级考试乱出题,没经测试也拿出来考人
- 大家看看看啊,好奇怪的一个思路.
- 如何确定注册表中一个键值是否存在?!
- 如何检测整个局域网对外所有ip,(有3各外接网关连接不同局域网)?
- MPEG ONE 和 VCD 播放器的Delphi源码下载
- 【求助】一个关于注入调用的问题
- 时间型字段取出来显示的问题!
- 有什么办法可以知道一个服务名对应的可执行文件的全名?
l_TrinId.TransactionID:=1;
l_TrinId.IsolationLevel:=xilReadCommitted;
if not (Dm.Sql_Db.InTransaction) then
Dm.Sql_Db.StartTransaction(l_TrinId)
else
//..... 处理未决的事务