DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: qiaoguoqiang
今日帖子: 0
在线用户: 0
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 nuptxxy (蹭饭家) ★☆☆☆☆ -
盒子活跃会员
2004/3/25 9:56:34
标题:
在三层中有两个问题,请大家指教 浏览:1010
加入我的收藏
楼主: 1.若业务层用一个ADOdataset,前台传一个SQL语句,在业务层如何用这个SQL查找数据库,并把数据返回
2.若业务层用一个ADOsaveprocedure,前台传一个存储过程的名字和参数名以及参数的设置,在业务层如何使用,并把数据返回

----------------------------------------------
-
作者:
男 shiro (比卡丘) ★☆☆☆☆ -
普通会员
2004/3/25 10:48:49
1楼: 服务端放TADOConnection,TADOQUERY,TDatasetProvider,TAdoStoredproc组件
客户端放TCliectDataSet,有表格的话可以放Tdatasource

你的想法,可以将SQL带入Tclientdataset的commandtext,再open它,表格可以通过数据源返回数据,也可以用循环将数据一一取出(服务端中的Provider要将option中打开poAllowCommandtext为TRUE)

存储过程是一样的道理,服务端放一个TAdoStoredproc,定位好存储过程,客户端(业务端)同样是Tclientdataset,然后例如下

with dm.store do
   begin
    Close; 
    With Params do
    begin
      //Refresh;  
      ParamByName(''@typeid'').Value := typeid;
      ParamByName(''@content'').Value := content;
    end;
    Execute;
    end;

传参就可以了,SELECT的话就找找返回数据集吧,其他操作如INSERT应该没大问题

不过。。。delphi的BUG,中文会被截断,见贴
http://www.csdn.net/Develop/article/18%5C18720.shtm

我按着方法修改ADODB单元,做但不成功,只好放弃存储过程,使用commandtext传sql了 =.=
----------------------------------------------
巧克力PIKA
作者:
男 leo (leo) ★☆☆☆☆ -
盒子活跃会员
2004/3/25 11:11:38
1楼: 业务层的操作你不必自己处理,只要设置好 clientdataset 同 datasetprovider的连接,及datasetprovider的属性即可.


不要为了三层而三层,要看你项目的具体规模、要求。

----------------------------------------------
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行60.54688毫秒 RSS