Delphi XE7 基于FirDAC三层架构下的实现批量查询

使用云露客户端的架构,通过TSelectBatchDataList、TSelectBatchData实现向中间件批量获取查询结果,有利于减少客户端和中间件的交互次数,将数据库中的查询结果通过中间件一次性打包给客户端,从而提供数据数据传送效率,现在本篇将简单介绍方法。在介绍该类之前,先介绍 TSelectBatchDataList这个结构体。

 type
     TSelectBatchDataList=record
       sDBname,sSQLText, sParam: string;
       FDData: OleVariant;
  end;


通过本结构体,可以将多个数据集一起提交给TSelectBatchData方法,实现批量查询。

var
  sErrormsg: string;
  Data1: OleVariant;
  rt: Integer;
  aArrList :array [0..1] of TSelectBatchDataList;    //有多少个数据集,定义多少个数组大小,支持依次查询
  FSelectBatchData :TSelectBatchData;   //批量查询类
begin

  try
    FSelectBatchData:=TSelectBatchData.Create;
    aArrList[0].sDBname:='YX_DB';
    aArrList[0].sSQLText:='Select * from  tb_RYXXB Where 1=1 and sXM=:sXM';
    aArrList[0].sParam:='sXM=王五';

    aArrList[1].sDBname:='YX_DB';
    aArrList[1].sSQLText:='Select * from  tb_KHXXB Where 1=1';
    aArrList[1].sParam:='';


    FSelectBatchData.Url := sURL;
    rt:=  FSelectBatchData.Open(aArrList);
    if rt<>0 then
    begin
      ShowMessage(FSelectBatchData.GetErrorInfo);
      Exit;
    end;

    FSelectBatchData.SetData(qSelectBatch1,aArrList[0].FDData);      //将服务器端的数据集装载到本地query(qSelectBatch1)
    FSelectBatchData.SetData(qSelectBatch2,aArrList[1].FDData); //将服务器端的数据集装载到本地query(qSelectBatch2)

  finally
    FSelectBatchData.Free;
  end;

多表以此类推,将数组的长度更改成你需要的长度,就能实现任意个数据集同时打开。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值