使用ADO&COM建立多层数据库应用程序时遇到的问题(200分)

  • 主题发起人 主题发起人 solin
  • 开始时间 开始时间
S

solin

Unregistered / Unconfirmed
GUEST, unregistred user!
这是一个老问题了,DFW上也提到了很多次,但都没有满意的答案,请各位大侠不吝赐教。重分感谢。
问题如下:
使用Transactional Data Module 建立COM(Require Transaction),
测试时在DataModule中加入了一下这些控件:
TADOConnection、TADOQuery、TDataSetProvider。
客户端采用DCOMConnection连接,连接时没有出错,
在激活ClientDataSet时提示:新事务不能登记到指定的事务处理器中
注意:数据库服务器和COM不在同一机器上才出现(不同网段):新事务不能登记到指定的事务处理器中。如在同一机器上就没有这个问题,数据库服务器为SQL Server 2000
 
看一下,刘艺的Delphi面向对象编程思想(第8章).pdf介绍吧
http://isaacliu.myetang.com/resource/download/DelphOOP08.zip
 
哈哈,WEB SERVICE时代已经来了,不要再钻研这个了!
 
To:app2001
没有在你推荐的那本书里找到解决方法,难道你是要我改为Soap或Web啊
 
我在那本书上看到有讲如果做COM的一些事例,只是想着你能参照一下罢了。
 
To:app2001
哦,多谢老兄
 
没有老大能解决一下吗
 
使用服务器方法。
在此方法中调用adoquery执行SQL语句。
只要服务器程序访问Database没有错误,就应当不会有问题。
DCOMConnection.Appserver.MethodOnServer();
begin
try adoquery.close;
except end;
adoquery.sql.add('your sql statements');
adoquery.execommand;
// or adoquery.open 如果要返回数据集的话
end;
 
数据库服务器和中间层服务器要在同一个域中
 
To:沉香屑
能说明一下原因吗??
 
可能是windows域控制方面的设置;
 
后退
顶部