请教如何在我的对象中使用remotedatamodule中的控件

zf4000 2003-05-11 11:01:42
我在服务器端新建了一个remotedatamodule,和一个objclass的单元文件,objclass单元文件中有这么一句话:
remotedatamodule.ADOQuery1.Close;
....
编译时在这一行出错,[Error] UntObj.pas(41): Undeclared identifier: 'remotedatamodule'
请问我该怎么做,才能在其他单元文件中使用remotedatamodule中的控件啊??
如果不能用,那么我该怎么做
...全文
197 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zf4000 2003-05-30
  • 打赏
  • 举报
回复
问题已经解决,好象只能在remotedatamodule中use别的单元文件,感谢各位
888888888888 2003-05-11
  • 打赏
  • 举报
回复
同意楼上
僵哥 2003-05-11
  • 打赏
  • 举报
回复
use remotedatamodule所在的单元。
888888888888 2003-05-11
  • 打赏
  • 举报
回复
关注
zf4000 2003-05-11
  • 打赏
  • 举报
回复
del_c_sharp(摩托~◎~◎~◎)
我已经注意到了,可是问题是,我的tuser.createUserFromId方法需要调用里面的adoconnection啊,难道可以不调用???
如果我想实现在别的类中调用remotedatamodule中的组件,我该怎么做呢???谢谢。
del_c_sharp 2003-05-11
  • 打赏
  • 举报
回复
楼主没有注意到一点:
你先新建一个带有remotedatamodule的项目,仔细看看:
1.在form的单元中:
var
form1:Tform1;
2.在remotedatamodule中没有var定义

道理很简单,服务器程序会初始化一个Tform1类的实例form1,
但任何remotedatamodule的实例,
都是由客户程序动态激活,而产生的.
你在写服务器程序时,只有form1的实例可用,你如何去控制还
没有建立的remotedatamodule呢?
相反,你在remotedatamodule中可以引用form1.

也就是说,form1作为服务器主窗体,与他共存的是程序运行后,
由客户程序激活的一些数据模块,但form1自己却不能直接直到有几个module~~~

zf4000 2003-05-11
  • 打赏
  • 举报
回复
难道没人帮忙吗?
zf4000 2003-05-11
  • 打赏
  • 举报
回复
我把源文件copy出来,帮忙看看


#############untmyremoteserver#########################
unit UntMyRemoteServer;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
DBClient, ProServer_TLB, StdVcl, Provider, DB, ADODB;

type
TmyRemoteServer = class(TRemoteDataModule, ImyRemoteServer)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DataSetProvider1: TDataSetProvider;
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
public
{ Public declarations }
end;

implementation

{$R *.DFM}

class procedure TmyRemoteServer.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);
begin
if Register then
begin
inherited UpdateRegistry(Register, ClassID, ProgID);
EnableSocketTransport(ClassID);
EnableWebTransport(ClassID);
end else
begin
DisableSocketTransport(ClassID);
DisableWebTransport(ClassID);
inherited UpdateRegistry(Register, ClassID, ProgID);
end;
end;
initialization
TComponentFactory.Create(ComServer, TmyRemoteServer,
Class_myRemoteServer, ciMultiInstance, tmApartment);

end.




###############unit objclass#################
{###################################################
类的声明
###################################################
}
unit UntObj;

interface

Type TPerson = class(Tobject)
private
{ Private declarations }
public
name : string[25];
sex : string[4];
{ Public declarations }
end;

type TUser = class(TPerson)
private
{ Private declarations }
public
user_id : string[20];
bumen : string[20];
//根据user_id从数据库取得用户信息
procedure createUserFromId(user_id : string);
procedure insertToDB(str: string);
//将user信息插入表中,str格式:'user_id',user_id_value,'name',name_value
{ Public declarations }
end;

implementation

uses UntMyRemoteServer;
procedure Tuser.createUserFromId(user_id: string);
var
str : string;
begin
str:='select * from user_db where user_id='''+user_id+'''';
//datamodule1.
//remoteServer:=Tremoteserver.Create();
myRemoteServer.ADOQuery1.Close;
datamodule1.ADOQuery1.SQL.Clear;
datamodule1.ADOQuery1.SQL.Add(str);
datamodule1.ADOQuery1.Open;
self.user_id:=datamodule1.ADOQuery1.FieldValues['user_id'];
self.bumen:=datamodule1.ADOQuery1.FieldValues['bumen'];
self.name:=datamodule1.ADOQuery1.FieldValues['name'];
self.sex:=datamodule1.ADOQuery1.FieldValues['sex'];
end;


procedure Tuser.insertToDB(str : string);
var
str : string;
begin
str:='insert into user_db (';
str:=str+' where user_id='''+user_id+'''';
//datamodule1.
//remoteServer:=Tremoteserver.Create();
datamodule1.ADOQuery1.Close;
datamodule1.ADOQuery1.SQL.Clear;
datamodule1.ADOQuery1.SQL.Add(str);
datamodule1.ADOQuery1.Open;
self.user_id:=datamodule1.ADOQuery1.FieldValues['user_id'];
self.bumen:=datamodule1.ADOQuery1.FieldValues['bumen'];
self.name:=datamodule1.ADOQuery1.FieldValues['name'];
self.sex:=datamodule1.ADOQuery1.FieldValues['sex'];
end;

end.


zf4000 2003-05-11
  • 打赏
  • 举报
回复
我已经use过了,
可是不行,提示的错误一样。

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧