请教关于DataSnap的问题(100)

  • 主题发起人 主题发起人 xxhadsg
  • 开始时间 开始时间
X

xxhadsg

Unregistered / Unconfirmed
GUEST, unregistred user!
有问题请教大侠:初步接触DataSnap,还请大家多多指教.1.先问个问题,就是大家在构建DataSnap应用的时候,如果客户端需要一个数据集,是不是就是在服务器上提供一个数据集操作?还是通过一个共有的数据集来提供?比如,需要一个返回客户档案的数据集,在服务器端建立一个连接到客户档案表的数据集,需要一个产品档案的数据集,在服务器上建立一个连接到产品档案的数据集.还是由一个数据集通过传送SQL命令来返回?2.为了清楚地说明这个要请教的问题,我结合一个例子来说吧(例子可能不恰当,只是为了说明问题).在不使用DataSnap的时候,假如有一个单据需要处理,这个单据可能有多种形式,我们假定由一个基类派生而来:TBaseBill=class public procedure SomeFunction;end;TBaseBillA=class(TBaseBill) public procedure SomeFunction;override;//TBaseBillA的具体实现end;TBaseBillB=class(TBaseBill) public procedure SomeFunction;override;//TBaseBillB的具体实现end;然后下面是TBaseBillA和TBaseBillB的具体实现.在需要调用的时候,可能会有下面的代码:var aBill:TBaseBill;begin aBill:=TBaseBillA.Create;//根据需要创建具体的 aBill.SomeFunction;end;现在如果使用DataSnap,为了做到瘦客户端,希望把这个SomeFunction的功能放大Server端.这种情况,是不是要在Server端建立一个SomeFunctionA和SomeFunctionB来供客户端的TBaseBillA和TBaseBillB调用?但这样感觉挺别扭,请大侠们指教该采用什么样的方式来处理才能更好.其实上面的意思或许可以这样来陈述:将逻辑运算放到服务器上,怎样才能更好地封装到对象当中?或者怎样由对象来调用服务器端的方法?是不是只能这样调用:procedure SomeClass.SomeFunction;begin ServerMethod1(para2,para2,....);end;希望大侠们给点架构方面的好的建议.非常感谢!
 
后退
顶部