三层数据库系统开发过程中的问题 。报错 新事务不能登记到指定的事务处理器中 ( 积分: 200 )

  • 主题发起人 主题发起人 looyo
  • 开始时间 开始时间
L

looyo

Unregistered / Unconfirmed
GUEST, unregistred user!
我采用了Delphi 5.X ADOMTSCOM高级程序设计篇 中第九章说述的架构想建立一个三层系统 。
软件环境 delphi 7 update1.1 数据库 oracle 10.2.0.1
操作系统 XP SP2
客户端:放置 clientdataset1 ,datasource1 dbgrid1
查询协调对象(dbquerycoor,支持事务):
放置一个clientdataset2,dcomconnect2
添加 getRoles(var vDatas:olevariant);
客户端用来获取数据
这个函数返回 clientdataset2.data
更新协调对象(dbupdatecoor,需要事务):
放置dcomconnect3
添加 procedure updateroles(vdatas:olevariant) 用于更新数据
[red]MTS对象(dbmts) [/red]
放置一个 ADOConnectionacon4 ADOQuery4 DataSetProvider4
数据库链接采用 oracle provider for ole db作为驱动。
adoquery1 中只有一句简单的sql语句 select * from role
添加 procedure updateDatas(vDatas: OleVariant;
iMaxErrors: Integer;
var iErrorCount: Integer);
safecall;
updateroles 原本想通过 dcomconnect3.AppServer来执行 ApplyUpdate,但是事实上无法调用。后来只能直接通过createremote来 直接执行 dbmts的AS_ApplyUpdates。
但是通过 dbmts 的 DataSetProvider4 的 onupdateerror 得到错误信息[blue]新事务不能登记到指定的事务处理器中[/blue]。更新不成功!
如果 更新协调对象dbupdatecoor需要事务 变成不支持事务,则能更新成功 !
 
sql server 的遇到过,解决了,oracle没遇到过。[:D]
 
xinjinren:
您好,sqlserver 遇到后如何解决的,说不定对在oracle上解决问题有帮助!
 
QQ:272612622
 
问题解决了了
安装 oracle service for mts
 

Similar threads

S
回复
0
查看
738
SUNSTONE的Delphi笔记
S
S
回复
0
查看
730
SUNSTONE的Delphi笔记
S
后退
顶部