请问哪位高手能解决这个中间层问题??Thanks a lot!! (200分)

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

ling0303

Unregistered / Unconfirmed
GUEST, unregistred user!
请问哪位高手能解决这这个问题??Thanks a lot!!
程序用delphi5.0编写,采用COBAR协议,三层结构的分布式系统。数据库用SQL Server2000。
数据模块CORBA Data Module 放了一堆TADOQuery和TDataSetProvider,TDataSetProvider
的DataSet属性设为其中一个TADOQuery,所有TADOQuery的Connection设为[red]同一个[/red]TADOConnection,
TADOConnection放在一个单独的含窗体的单元里。当多个客户程序打开(即用时要使用这个
中间层时
),客户程序提示“灾难性故障”,中间层提示为:
Project Plbserver.exe raised exception class EOleException with message'Cannot
start more transactions on this session'.Process stopped Use Step or Run to
continue.我估计问题出在TADOConnection,中间层和数据库之间只有一个session。
请问有什么解决办法??各位做中间层时,怎样做的?用什么控件?它们的关系?
不好意思,太罗嗦了。谢谢!!qian0303@163.com
 
是什么线程模式?
 
为多实例多线程,也试过多实例单线程,可是发生同样的错误,
initialization
TCorbaVclComponentFactory.Create('PblicsercdmFactory', 'Pblicsercdm', 'IDL:Pblserver/PblicsercdmFactory:1.0',
IPblicsercdm, TPblicsercdm, iMultiInstance, tmMultiThreaded);
end
我改为单实例时,出现错误:尚未调用Coinitialize,请问怎样解决,觉得改为单实例有可能
会解决上面的问题。
 
USE ACTIVEX单元
try
OleInitialize(nil);
.........
finally
OleUninitialize
end;
不知是不是这原因,不过可以试试
 
将TADOConnection放入Data Module 中
 
多人接受答案了。
 
后退
顶部