主窗口如何RemoteDataModule中的方法、变量?(200分)

  • 主题发起人 主题发起人 apache
  • 开始时间 开始时间
A

apache

Unregistered / Unconfirmed
GUEST, unregistred user!
服务器端编程时,为何其它服务器单元不能引用
RemoteDataModule中的方法、变量?
就是主窗口不能调用RemoteDataModule中的方法、变量?
如何解决?
 
你可将那个tlb单元放你的摸索路径中就可以像平常一样用了嘛
 
学习学习
 
我在做一个远程数据库程序,但是不知道RemoteDataModule上的数据库路径在安装后怎么动态调用,请指点!!!
 
view->Type Library
新建一個方法
//調用
DCOM.AppServer.方法名()
 
SocketConnection1.AppServer.函数或过程
 
type
TMyRemoteDataModule = class(TRemoteDataModule, IMyRemoteDataModule)
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean;
const ClassID, ProgID: string);
override;
public
constructor Create(AOwner: TComponent);
override;
// 加一个构造器
destructor Destroy;
override;
// 增加
{ Public declarations }
end;

var
MyRemoteDataModule: TMyRemoteDataModule;
// 增加
implementation
// 增加
constructor TMyRemoteDataModule.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
MyRemoteDataModule := self;
end;
// 增加
destructor TMyRemoteDataModule.Destroy;
begin
MyRemoteDataModule := nil;
inherited Destroy;
end;

initialization
MyRemoteDataModule := nil;
// 增加
TComponentFactory.Create(ComServer, TMyRemoteDataModule,
Class_MyRemoteDataModule, ciMultiInstance, tmApartment);
end.

主窗体中引用该.pas文件,即可用MyRemoteDataModule操作其中的方法、变量.
如:
if MyRemoteDataModule <> nil then
MyRemoteDataModule. ...;

 
不能访问是因为RDM没有实例化
 
Julian2082兄说的对,之所以会引用出错,是因为RemoteDataModule没有实例化。
到Preject>>Option中设置DataModule为Auto-Create Form;并且把他的顺序方在MainForm前面,这下就可以了。
 
我想楼主我意思是自己没有说清楚。
他的服务层有一个REMOTE,一个FORM,现在要在FROM中引用ERMOTE中的变量。
很简单:
在FORM中:
var
remote:Tremote
就可以了
 
后退
顶部