简单而经典的用户认证问题,(midas,面向对象和数据库操作想结合),欢迎大家讨论。

zf4000 2003-05-12 09:47:24
请各为谈谈在开发分布式系统时,怎样将面向对象和三层结构结合起来,
以用户人证为例,本人先抛砖引玉,陈上自己的想法:
1, 服务器端建立remotedatamodule,拖入adoconnection,adoquery,datasetprovider
2,新建一个objunit,用来声名类,如下:
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;

这里出现一个问题,createuserfromid过程该怎么写??我无法访问remotedatamodule里的adoquery控件。思路出现断点。
3,下面的东西还没形成代码,先说说思路:remotedatamodule中构造一个接口:usercheck(),用来检验用户的合法性.
4,欢迎大家来接力
...全文
11 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ninglng 2003-05-23
你当然不能引用adoquery,remotedatamodule是在客户端访问时才create的,在未建立时引用出错==正常。

你不用这么做的,将所有的对数据的操作写成函数,在tlb中定义接口,客户端调用即可。
回复
javavbling 2003-05-23
1.业务对象可不可以封装成dll,然后在远程数据模块中调用?
2.客户端能不能从远程数据模块调用封装了的对象?
回复
zzzl 2003-05-20
太麻烦了,我给你个简单的法
将TPerson从TClientDataset继承,作为业务层,TPerson直接与数据访问层通讯
回复
逢桥夜泊 2003-05-20
那我也要关注一下了
回复
sapphire99 2003-05-20
To:888888888888(888888888888)
我和你一样,会一如既往的关注这个问题,呵呵。
回复
888888888888 2003-05-18
关注
回复
virtualmfc 2003-05-16
忍不住说几句,COM+中对于这个完全交给程序员自己处理,个人感觉,借用EJB的Session Bean和Entity Bean就可以解决这个问题。详细的自己去看资料。
回复
simonzone 2003-05-13
com+++++++++
回复
sixgj 2003-05-12
学习中……
回复
snake_eye 2003-05-12
数据模块一个COM+
查询信息一个COM+
修改信息一个COm+(这里要处理业务),也可以再建立COM+专门处理其他的业务,然后调用修改信息一个COm+(
回复
thh820630 2003-05-12
在服务器端接口中定义方法 然后在客户端调用
服务器端是可以访问 数据集组件的
回复
citytramper 2003-05-12
不明白你的意思 :)

Tuser用来干什么?

procedure createUserFromId(user_id : string);
做什么用?
回复
Oer 2003-05-12
我想的是,既然是面向对象,那么应当说是让客户端来调用整个对象吧(如用户人证),而你上面的面向对象不就跟C/S一样的吗?
我想了应该是编一个中间层接口来让客户端调用整个对象(包括所有对象的属性、方法,这些属性、方法是用来读取后台的数据等),这样子,只要客户端调用这个接口就可以能调用所有对象的属性、方法。

回复
njbudong 2003-05-12
呵呵
回复
eastliangliang 2003-05-12
关注一下
回复
soaringsouth 2003-05-12
procedure TUser.createUserFromId(user_id: string);
var
Ioper:IFulwel; //与中间层打交道的接口。
begin
if IOper.getuser(user_id) then
begin
//
end;
end;

仅仅是我自己的理解,看看别人有什么高明的。
回复
相关推荐
发帖
网络通信/分布式开发
创建于2007-08-02

1572

社区成员

Delphi 网络通信/分布式开发
申请成为版主
帖子事件
创建了帖子
2003-05-12 09:47
社区公告
暂无公告