Update COM+对象在WIN2000下不能使用需要事务或新建事务模式(200分)

  • 主题发起人 主题发起人 gpib
  • 开始时间 开始时间
G

gpib

Unregistered / Unconfirmed
GUEST, unregistred user!
李维的关于ADO/MTS的书中第九章的例子有些错误,改进后可以运行,
但是Update COM+对象在WIN2000下不能使用需要事务或新建事务模式,会
发生激活错误,Update对象使用支持事务没有问题。我初学Delphi不久,
用的是Delphi6。请高手指点一二。
 
在事务下不能创建其他的COM+对像,调用时发生'一般性访问错',被调用的对象不能激活
 
我搞明白了,原来是ADO的问题。
 
你是怎么调用其他COM对象的?
和ADO又有什么关系?
问题解决了也要公布一下噢!  :)
 
和李维书上的一样,我用ObjectContext.CreateInstance在COM对象中调用其他COM对象.
原来我用的是ADO的ACCESS的OLEDB驱动, 改为ADO的ODBC驱动就可以了。
另外,SQL Server 的OLE DB驱动是可以的。
我的实验证明:ACCESS数据库对COM+的事务支持能力很有限,我现在不得不改用SQL SERVER数据库
 
to gpib:
我有类似的问题,但改了ADO驱动在事务下还是不能更新,我是看了李维的书后做三
层系统的,在事务更新中出现如下错误:
[microsoft][ODBC驱动程序管理器]事务服务器部件事务操作非法。
帮我看看是怎么回事,谢谢!!!
 
to haoquandeng:
你用什么数据库,access,组件调用形式是怎样的?
 
还是用SQL Server吧,程序调试好了,可以用SE的方式直接发布到客户端。
单机版和网络版程序是一样的多好。
 
我也遇见这种情况
Delphi 6.0 + Win2000 Profressional
书中说要修改provider.pas单元,中的TBaseProvider的更新方法,把事务管理去掉,
让COM+环境来管理事务,但是好像不行。
我又查过Provider.pas代码,却是是在TBaseProvider.InternalApplyUpdates方法中出现异常
解决方法:
在数据连接模块(远程数据模块TMtsDataModule)中增加一个自己写的更新方法,对TQuery
等进行更新。考虑中,没试过,但是这样编码效率差。
 
至于我说的错误问题,我已解决了,是在没有任何办法的情况下,重新安装过win2000,其它
没改.
 
后退
顶部