3层中,中间层的主窗口不能调用RemoteDataModule中的过程、变量?(100分)

  • 主题发起人 主题发起人 mnbsg
  • 开始时间 开始时间
M

mnbsg

Unregistered / Unconfirmed
GUEST, unregistred user!
中间层的主窗口不能调用RemoteDataModule中的过程、变量?
//下面是中间层RemoteDataModule中的方法
procedure tserver.aaa();

begin
query.Close ;
query.SQL.Clear ;
query.SQL.Add('EXEC sp001);
query.ExecSQL ;
end;
----------------------------------------
//下面是中间层主截面的弹出菜单
procedure TForm1.N1Click(Sender: TObject);
begin
//可以这样tyytser.Create();
//也可以这样tyytser.ClassName
tserver.AAA();//就是不能这样,
end;
是怎么回事情啊!
是哪里没有设置好还是......!谢谢各位老大了!!!!
 
把你的过程不要写到RemoteDataModule的类中!
 
这是思维习惯所致!
平时我们定义一个窗口,比如叫TForm1,delphi自动创建一个变量Form1并在applicationrun之前就将它实例化了,创建一个dataModule也是这样。
但是RemoteDataModule不同,delphi不会在application.run之前就创建它的实例,只有请求到来时才创建实例,而且用完就销毁了。这也是所谓的“无状态”呀,也是众多访问不至于资源不足的原因。
你可以自己创建RemoteDataModule的实例,然后调用其中的对象、方法……但你创建的这个实例,跟响应远程请求的实例绝对不是同一个。
 
明白了谢谢两位!
 
后退
顶部