Q:

三层结构,在服务器端使用adoconnection连接到sqlserver2000,然后想在
datasetprovider的beforupdaterecord中使用语句:
try
adoconnection.begintrans; //这一句出错,错误信息如下
....
adoconnection.committrans;
except
....
end

错误信息如下:
无法在此会话中启动更多的事务

我在启用adoconnection.begintrans前判断adoconnection.InTransaction是false,
为什么会出现这个错误?

A:

只有一种情况会发生搂主的这种现象,即在一个事务未完成时,又启用了另一个事务。即在代码连接时有出现:
adoconnection.begintrans;
....
adoconnection.begintrans;
....
这种情况下,会发生报错。所以要保证begintrans和committrans或rollbacktrans成对出现,尤其是在try语句中。

A:DSP 在更新数据时会自动启动事务?!

A:

首先你的数据库不支持嵌套事务!
其次,在单事务情况下:
try
ADOConnection.BeginTrans;
....
ADOConnection.CommitTrans;
except
ADOConnection.RollbackTrans;
end;
必须成套出现。
最后,可以在开始事务前调用ADOConnection1.InTransaction来判断

A:

楼上的“你的数据库不支持嵌套事务“,我不同意这样的说法,SQL Server和Oracle中都是支持嵌套事务的,但在Delphi应用中同样会出现这样的报错,其根本原因并不是数据库引起的,而是在于Delphi本身。只能说Delphi不支持事务嵌套。
在Delphi中使用事务机制不如在应用服务器端使用好,搂主可以将SQL部分改为存储过程以事务实现会来的简洁而高效。

A:

3楼比较靠谱。
数据库本身支持嵌套事务可数据访问引擎没实现此功能,等于还是没有。
把业务逻辑在APPSERVER的代码和DATASERVER的SP,VIEW中散布,升级及维护会很麻烦。
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理

A:
程序不用编写嵌套事务,编程方式的问题

A:
那是因为你的上一次事务没有回滚!!!

A:
datasetprovider本身自带事务功能了........

A:
因为在分布式的远程数据摸板的创建时,是系统默认的方式:为每个客户开启一个独立的线程都共享一个数据连接,所以此时要是有两个或两个以上的客户线程同时启动事务,应用层就会出现“无法在此会话中启动更多的事务”的错误,而客户端会出现:“不能手工或自动在分布式下创建新的连接”

A:
如果是datasetprovider本身自带事务功能,那么怎样将这个事备用起来,或者将它屏蔽掉呢。
其实我在这几天的测试过程中,发现datasetprovider确实自带事务功能了

A:

应该转换思路了。
我找到解决的办法了。
ADOConnection.BeginTrans;在beforeapplyupdate中使用
ADOConnection.CommitTrans;在afterapplyupdate
ADOConnection.RollbackTrans;在applyupdateerr发生错误中使用

(转载)使用ADOConnet.BeginTrans后,出现错误提示:无法在此会话中启动更多的事务?的更多相关文章

  1. PowerDesigner成功生成PDM进行check model后的错误提示解决途径

    1.existence of reference join------->缺少主键; 2.constraint name uniquesness-------->关联约束重名(refere ...

  2. qq2440启动linux后出现错误提示request_module: runaway loop modprobe binfmt-464c

    1.情景: 编译busybox时加了make CROSS_COMPILE=arm-linux-,但是还是出现了此情况! 2.解决方案如下: 配置busybox时,在配置中发现busybox setti ...

  3. 纯手动拉WebPanel页面保存出现错误提示 "error:字符文本中的字符太多"

    环境为.Net 没有使用WorkWithPlus 纯手拉WebFrom页面  问题出现情况如下:在拉页面的过程中拖了3个Value类型的变量到Table中 页面如下 但是在我保存的时候 发现提示如下错 ...

  4. [摘抄]VC6.0移植到VS2008(vs2005)后的错误总结(未全部验证)

    ============================================================================================= 201405 ...

  5. 设置jQuery validate插件错误提示位置

    参照上一篇bootstrap布局注册表单 使用校验插件默认位置显示提示信息,发现错误提示信息换行了,由于增加了提示信息,表单显示高度也增加了,如下 默认提示信息位置代码为 将错误提示设置其显示在右边, ...

  6. 导入Maven项目后,Eclipse提示“Missing artifact ”类的错误

    导入Maven项目后,Eclipse提示“Missing artifact ”类的错误 标签: Maven Missing art 2016-08-15 16:05 679人阅读 评论(0) 收藏 举 ...

  7. 解决VM安装VMTools后错误提示,实现文件共享

    在VM里给Red Hat 9.0安装VMTools后重启,在系统启动过程中出现三处提示,分别为:第一处:Mounting local filesystem: Error: Cannot mount f ...

  8. Halcon的应用程序 打开后 弹出没有帮助文件错误提示

    问题: Halcon的应用程序 打开后 弹出没有帮助文件错误提示 解决方法: 建立(C:\ProgramFiles\MVTec\halcon)目录,将halcon安装目录下的help文件夹复制过来即可 ...

  9. SVN 安装后右键出现点击鼠标右键弹出错误提示:CrashHandler initialization error

    SVN 安装后右键出现点击鼠标右键弹出错误提示:CrashHandler initialization error 原因是目标文件夹中缺少SendRpt.exe文件 解决方案:找svn是好的的同事将b ...

随机推荐

  1. iOS开发——swift精讲&MVC应用实战

    MVC应用实战 iOS开发中设计模式是很重要的,其中,使用最多的就是MVC模式,今天就简单介绍一下在Swift中这么使用MVC模式来实现我们想要的功能: 模型-视图-控制器(Model-View-Co ...

  2. Android_GestureDetector

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  3. JAVA_eclipse 保留Java文件时自动格式化代码和优化Import

    Eclipse 保存Java文件时自动格式化代码和优化Import Eclipse中format代码的快捷方式是ctrl+shift+F,如果大家想保存 java文件的时候 自动就格式化代码+消除不必 ...

  4. JavaScript总结2--函数

    一.定义函数 在js中,函数也是对象,能赋值给变量,能当作参数,可以设置属性,和调用他拥有的方法.函数的toString()方法,会返回他完整的函数内容.他有两个定义方法,函数表达式和函数声明.当一个 ...

  5. Tomcat服务器启动常见问题

    参考:http://www.cnblogs.com/xdp-gacl/p/3729033.html 学习web开发,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏 ...

  6. 焦点轮播图——myfocus焦点图库

    网站网址: http://demo.jb51.net/js/myfocus/demo.html 简单3步,你即可以用上myFocus. Step 1. 在html的标签内引入相关文件 <scri ...

  7. algorithms中计算时间的渐近表示

    1.大写Ο符号大写Ο符号给出了函数f的一个上限. 定义[大写Ο符号]:f(n)=Ο(g(n)),当且仅当存在正的常数c和n0,使得对于所有的n≥n0,有 f(n)≤c*g(n) 上述定义表明,函数f至 ...

  8. C语言的变量的作用域和生存期

    一.c程序存储空间布局 C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分:一个程序只有一个副本:只读,防止程序由于意外事故而修改自身指令:      2)初始化数据段(数据段)——在 ...

  9. 嵌入式中 MMU的功能

    学习嵌入式才发现要看的书太多,外面的世界很精彩啊,现在来说说MMU吧,MMU是Memory Management Unit的缩写,是用来管理虚拟内存系统的器件. MMU通常是CPU的一部分,本身有少量 ...

  10. GridView不換行

    在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全. 解决办法,可以把ScrollVIew给删除 ...