|
盒子资源分类 |
|
|
|
|
VT(V1.10)+RC(V1.20)+RD(V1.20)_D7(RPC+三层数据库框架) |
|
关键字:RPC 三层 数据库 框架 |
来 自:原创 |
平 台:Win2k/XP/NT,Win2003 |
下载所需:0 火柴 |
深浅度:高级 |
完成时间:2009/11/19 |
发布者:syncgrey |
发布时间:2009/11/20 |
编辑器:DELPHI7 |
语 种:简体中文 |
分 类:数据库 |
下载浏览:1412/13557 |
|
|
|
|
VT(V1.10)+RC(V1.20)+RD(V1.20)_D7(RPC+三层数据库框架)免费版(带绝大部分源代码,暂保留 uVTStreamUtils.pas 和 uRDDataResolver.pas 的源代码),可免费使用,版权保留。 编译环境为 D7,暂无帮助文档。 作者:荆棘;2CCC 帐号名是 syncgrey;欢迎加群 7689125。
一、使用方法 1.解压后,把 kbmMemTable,VT,RC,RD 四个路径添加到 Delphi IDE 路径中,如果已安装有 kbmMemTable,则不要加入 kbmMemTable 路径。 2.如果装有旧版本,请先卸载掉;卸载后最好先关闭 D7 IDE,开始-->运行,输入 regedit,回车,定位到 HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Palette,删除右侧的 RemData 或类似于 RemData.Hidden* 的键值。 3.依次编译并安装以下三个包:VT\SG_VTLibrary_D7.dpk、SG_RCLibrary_D7.dpk、SG_RDLibrary_D7.dpk。 4.Demos\RCFirstDemo 文件夹中,有 RC 远程方法调用的例子,并附有详细注释。 5.Demos\MegaDemo 文件夹中,有 RD 数据库操作的例子,分别生成运行 RDMegaDemoServer.exe 和 RDMegaDemoClient.exe(运行 DEMO 需要开启 SQL Server)。
二、版本更新历史
VT 1.10(2009-11-19) 1、uVTObjectPools.pas 类名增加 VT 前缀,新增 TVTThreadComponentPool 线程安全对象池,TVTInterfacePool 接口实例池,TVTThreadInterfacePool 线程安全接口实例池。 RC 1.20(2009-11-19) 1、新增了一个 TRDLocalADODataSet,功能同 TADODataSet 一样,主要是为了保持本地数据库操作时的接口一致。(2009-11-10) 2、RC 的 MethodName 增加 Cardinal 编译选项,可在 AnsiString 和 Cardinal 之间切换,增加 Cardinal 是为了支持 D5、D6,因为 D5、D6 不支持 {$METHODINFO} 编译选项。(2009-11-10) 3、修正了 TVTRCService._Release 中引用计数为 0 时不自动释放的问题。(2009-11-18) 4、TVTRCServer 增加 ServerName(节点名)和 ServerLocators(其它服务节点定位表)属性,对于不是发给本节点的请求,会转发给正确的目标节点。 5、TVTRCClient 增加 ServerName(节点名,默认留空)、Username、Password(用户名和密码)属性,增加 OnSendRequest、OnReceiveResponse、OnException 事件;TVTRCService/TVTRCServiceModule.Activate 方法中,增加了 Username 和 Password(与 TVTRCClient 中的同名属性对应)参数,提供简单的用户身份验证。 6、修正了 TVTRCIndyTCPServer 动态更改端口号无效的问题(现在直接用 TVTRDIndyTCPServer.Port := 端口号)。 7、增加 TVTRCLocalServer 和 TVTRCLocalClient。 8、其它一些类属性的调整。 RD 1.20(2009-11-19) 1、增加 TRDClientDataSet ctSQLText 模式下对 Where 的支持。(2009-11-10) 2、修正了 NativeCommandText(经过 ParseSQL 的命令文本)后面的乱码字符。(2009-11-10) 3、TRDConnection 增加 UseDataLinkFile 属性,可直接使用 DataLink 文件。(2009-11-10) 4、修正了 TRDDataProvider.AS_UpdateData 中 Resolver.Connection 未置 nil,在程序退出时 TRDConnectionManager 先于 IRDConnection 释放而导致的问题。(2009-11-18) 5、TRDDataProvider 增加 OnExecSQL 事件,可在这里获取执行的 SQL 语句和参数表。 6、其它一些类属性的调整。 ========== 1.01(2009.11.3): 1、公开 uRDDataProvider.pas 的源代码。 2、uRDBinDataStreamer.pas 添加 ftBytes, ftVarBytes 字段的流化代码,直接作为字符串处理。 3、RC 库更新:把原来的 TVTRCService 更名为 TVTRCServiceModule,增加一个非可视化服务类 TVTRCService;把 ClassFactory 对服务的引用改为接口模式。 ========== 1.00(2009.10.15):第一个公开版本
三、功能简介
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。 |
|
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们! |
相关文章 |
|
|
|
相关评论 |
|
|
|
|