VTRemoteData_V101_D7(三层数据库框架)

关键字: VT RemoteData D7 三层 数据库 框架
来 自: 转载
平 台: Win2k/XP/NT,Win2003
编辑器: DELPHI7 发布时间: 2009-11-5
分 类: 数据库控件 下载浏览: 432/1137

RemoteData V1.01 免费版(带绝大部分源代码,暂保留 uVTStreamUtils.pas 和 uRDDataResolver.pas 的源代码),可免费使用,版权保留。
编译环境为 D7,暂无帮助文档。
作者:荆棘;2CCC 帐号名是 syncgrey;欢迎加群 7689125。

使用方法
1.解压后,把 kbmMemTable,VT,RC,RD 四个路径添加到 Delphi IDE 路径中。
2.打开 VTRemoteData_V100_D7.dpk 包,编译,安装。
3.打开 MegaDemo\RDMegaDemo.bpg,分别生成运行 RDMegaDemoServer.exe 和 RDMegaDemoClient.exe。
4.运行 DEMO 需要开启 SQL Server。

VT 库
uVTAnsiStrUtils.pas:AnsiString 的辅助处理单元,其中部分代码从 QStrings 提取并作了改名处理。
uVTObjAuto.pas:从 D2009 中提取的 RTTI 库。
uVTObjectPools.pas:原创的对象池类。
uVTStreamPacket.pas:原创的二进制打包类,依赖 uVTStreamUtils.pas。
uVTStreamUtils.dcu(暂不公布源代码):原创的数据二进制流化库,可自动流化不包含对象或本地指针(AnsiString、WideString、Variant 除外)的静态数组、动态数组和结构体,,比如下面示例的类型都可正确流化:
  PRDParamInfo = ^TRDParamInfo;
  TRDParamInfo = packed record
    Name        : AnsiString;
    DataType    : TFieldType;
    ParamType   : TParamType;
    Size        : Integer;
    Precision   : Integer;
    NumericScale: Integer;
    Value       : Variant;
  end;

  PRDParamInfoArray = ^TRDParamInfoArray;
  TRDParamInfoArray = array of TRDParamInfo;

  TRDParamInfosArray = array of TRDParamInfoArray;
  
  PRDDataRequestInfo = ^TRDDataRequestInfo;
  TRDDataRequestInfo = packed record
    ConnectionName    : AnsiString;
    CommandText       : AnsiString;
    CommandType       : TRDCommandType;
    IncludeSchema     : Boolean;
    MaxRecords        : Integer;
    Params          : TRDParamInfoArray;
    PagingInfo        : TRDDataPagingInfo;
    ConditionInfoArray: TRDConditionInfoArray;
  end;

  TRDDataRequestInfoArray = array of TRDDataRequestInfo;
  
uVTStrings.pas:原创的字符串列表类,可通过编译指令,在 AnsiString 与 WideString 版本之间切换。
uVTStrUtils.pas:原创的字符串函数库,可通过编译指令,在 AnsiString 与 WideString 版本之间切换。
uVTThreadLists.pas:线程安全的列表类。 
uVTThreadTimer.pas:一个从 RO 中提取的线程定时器类。
uVTTypes.pas:类型声明单元。
uVTTypInfo.pas:从 System.pas 单元提取出来的 RTTI 函数,这些函数默认情况下 Delphi 无法访问,主要用于结构体和数组的流化和反流化。
uVTVariantUtils.pas:Variant 函数库。
uVTWideStrUtils.pas:从 Tnt 中提取的 WideString 处理函数。

RC 库(小巧高效的 RPC 框架)
1、采用二进制编码、解码,体积小,速度快。
2、带有服务池功能,避免对远程服务类的重复创建释放。
3、能将服务端的异常服务带到客户端。
4、可根据需要方便的扩充通讯协议通道。

RD 库(三层数据库框架,整体框架类似 DA,个人感觉比 DA 小巧易用)
1、客户端的数据库无关性:数据中间件可通过增加数据库驱动以支持新的数据库,切换数据库驱动以改变所使用的数据库类型。
2、支持数据库连接池功能,并带有连接超时机制。
3、中间件可把业务逻辑封装成 Scheam 中,向客户端提供 LogicalName,客户端通过 LogicalName 向中间件请求服务,避免了客户端对 SQL 语句的直接使用。
4、客户端支持直接执行 SQL 语句来取数据或更新数据。
5、客户端支持批量更新方式。
6、客户端在 ctLogicalName 模式下,支持分页显示或分批取数据。
7、用户可方便的扩充编写自己的内存表类、数据打包类。
8、中间件可自定义插入、更新、删除语句。
9、客户端支持简单的 ORM。


版本更新历史
1.00(2009.10.15):第一个公开版本
1.01(2009.11.3):
 1、公开 uRDDataProvider.pas 的源代码。
 2、uRDBinDataStreamer.pas 添加 ftBytes, ftVarBytes 字段的流化代码,直接作为字符串处理。
 3、RC 库更新:把原来的 TVTRCService 更名为 TVTRCServiceModule,增加一个非可视化服务类 TVTRCService;把 ClassFactory 对服务的引用改为接口模式。

下载页面