求助解决这个servic的问题(100分)

  • 主题发起人 主题发起人 blackgun
  • 开始时间 开始时间
B

blackgun

Unregistered / Unconfirmed
GUEST, unregistred user!
我在编制一个servic形态的应用程序服务器的时候,我在运行程序时,他总是给我一个提示
There are still active COM objects in the application.One or more clients may
have references to these object,so manually closing this application may cause
those client application(s) to fail.
Are you sure you want to close application.
请问各位如何解决
 
很有可能是你的应用服务器没设置好,加了Tsession了吗,还有你建立远程数据模块的时候
除了写上模块名,有没有改另外的选项。建议你别该。
 
我没有加上Tsession,这个是一定要加的吗?其他的东西我都没有改
 
你的SERVICE是安装后由NT启动的吗?如果直接运行,它会自动退出的。
 
我是直接运行的,我是在开发期中运行的。这样是不可以的吗?[:)]
 
看下面的说明,如果是照下面的设置来做的话,应该没错。
SQLserver数据库--------->Tdatabase->Tquery->TDataSetProvider->Tclientdataset->Tdatasource->Tdbgrid(显示数据)
|----远程数据库服务器---| |------------应用服务器------------| |------------- 客户端----------------|
数据流程说明:
1:Tdatabase:通过BDE建立的连接名test2与数据库连接上,同时填写databasename属性名test2(这个名称可以与BDE中建立的连接名相同或不同)。这个属性要供Tquery组件使用
2:Tquery:通过设置databasename这个自己的属性名称(test2)连接Tdatabase。
3:TDataSetProvider:这是一个接口组件,供客户端连接应用服务器用,要设置两个属性:dataset属性写上Tquery名称,options的属性里的poallowcommdtext的属性该为true。
4:Tclientdataset:客户端的数据查询组件,相当与两层结构中的query的功能,有两个属性要设置,providername属性为TDataSetProvider组件名,remoteserver属性为Tdcomconnection组件名。当然还有一个commandtext属性要有内容,我们写的SQL语言就在这个属性的内容中,一般都是在程序中写的。为什么要把TdataSetProvider组件的poallowcommdtext的属性为true,就是因为要用Tclientdataset组件的commandtext属性的原因。
5:Tdatasource:数据集组件,Tclientdataset组件查询到的数据通过Tdatasource组件可以显示在Tdbgrid上。有一个属性要设置,dataset属性设为Tclientdataset组件名。
6:Tdbgrid:数据显示框,与Tdatasource组件连接好后,可以显示数据。设置好datasource属性为Tdatasource组件名就可以了。
7:TDCOMconnection:也是一个连接应用服务器的组件,有两个属性要设置,servername属性选上应用服务器运行后注册的名称,本例子中注册名称为serverprj.test2,这个名称是在建立好应用服务器后运行而产生的。如果应用服务器建立好了,却没有运行,那么servername的属性框中就不会出现serverprj.test2这个内容。serverguid属性内容也是运行应用服务器而自动产生的。这个一个注册码。
 
服务程序要加执行参数-INSTALL进行安装,然后在NT服务控制面板中启动。
D:>Project1.exe -install (提示安装成功)
否则程序会在十几秒内自动退出
参考:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=803850
 
接受答案了.
 
后退
顶部