三层疑点!做三层的各位请看看。没分了。(0分)

  • 主题发起人 主题发起人 Liuren_flf
  • 开始时间 开始时间
L

Liuren_flf

Unregistered / Unconfirmed
GUEST, unregistred user!
如我的系统将有100个表,有20个视图,15个存储过程
难道在我的应用服务器上要100多对TdataSet+TdataSetProvider?
有人会说可以在应用服务器上写接口?但这个接口怎么写?难道像Delphi的Demo中所似的,在客户程序中调用SQL语句来存取数据吗?如果是这样那还不如何做二层的好!

 
动态创建数据集与提供者
 
我发过类似的帖子,没有找到比较好的方案。

楼上说动态创建,请教一下在何时创建比较合适?对每个表都要创建吗?就是动态创建是不是也要提前定义好变量,还是自动根据表的个数生成呢?我对这问题比较迷茫,请指教!有偿回答,谢谢
 
你可以用很少的TdataSet+TdataSetProvider,把操作大致相同的表用一个TdataSet+TdataSetProvider,在TdataSet+TdataSetProvider的ONdatarequest事件
中写代码。具体做法是
服务器端:加入一个tquery和TdataSet+TdataSetProvider,设置TdataSet+TdataSetProvider的dataset=Tquery1,然后在ONdatarequest事件
中写
query1.close;
query1.sql.clear;
query1.sql.add(input);
query1.Prepare;
query1.open;
with (sender as tdatasetprovider )do
begin
result:=data;
end;

在客户端如下引用:
Clientdataset1.data:=Clientdataset1.DataRequest('select * from table1');
 
你提出的问题使我发出了一个根本性的问题:
Apartment公寓:
只有一个Server实例来为多个Client服务,每个Client只是在得到一个key后进入公寓,这样的情况下,有如:
Remote DataModule只实例化一次,Remote DataModule中的TABLE,QUERY组件是一个个公寓,每一个公寓在同一时该只能有一个可进入。
结论:
在Apartment公寓的线程模式下, server端应多加一些TABLE, QUERY组件。
<别骂我,我对其理论现是一团糊>
 
做成无状态就可以了
 
谢谢各位的参与,现在结贴!
 
后退
顶部