网站颜色:

全能中间件 RTC FireDAC 简单高效稳定的三层框架支持RESTful

  • 是否包含源码:是
  • 客户端平台支持:Windows/Android/iOS
  • 客户端开发工具:Delphi/JAVA/.NET等
  • 服务端编译版本:XE7或以上
  • 依赖第三方控件:RealThinClientSDK

注意:1.本商品为虚拟物品,不支持退货。
          2.本商品包含中间件服务端和客户端源码,但不包含RealThinClientSDK源码。
----------------------------------------------------------------------------------------
<全能中间件>基于 Delphi 10 Seattle +RealThinClientSDKv6.x+FireDAC强力打造,站在巨人的肩上比巨人看的更远。迄今为止,是支持数据库最多、速度最快、最稳定的三层中间件之一,欢迎下载测试。
===============================================
1.支持 多账套多数据库,包括InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL Anywhere, Advantage DB, Firebird, Access, Informix, DataSnap等16种数据库。
2.支持 快速开发,封装了 TRFConnection 和 TRFDataSet 控件供客户端使用,传统两层应用轻松升级为三层应用。
3.支持 数据压缩、加密传输,效率和安全有保障。
4.支持 数据连接池,提高并发响应速度。
5.支持 客户端执行SQL语句,存储过程,亦可以把逻辑SQL放在中间层,控制权由您一手掌握。
6.支持 Delta更新,比传统的拼接SQL更新方式效率高,兼容性更好好。
7.支持 SQL 参数化查询、 分页查询。
8.支持 多表事务更新,会保证数据的一致性。
9.支持 多表联合查询更新其中一个表。
10.支持 多平台开发(Windows/Android/iOS/OS X),各平台使用方法一致。
11.支持 7x24小时长时间稳定运行,已经过多个正式项目长时间考验。
12.还包含了很多实用的功能和技巧,例如:JSON和DataSet互转、利用Rtti和SQLite读写配置文件、验证码生成和处理、VCLStyles高级使用技巧等。
===============================================
一言以蔽之,简单、高效、稳定、安全!
 
编译环境:Windows 7 64bit + Delphi 10 Seattle
第三方组建:RealThinClientSDK 6.x
 
演示程序下载地址:http://picimg.witcp.com/pic/pan.baidu.com/s/1hqh8dE0
 
技术支持
交流群: 425628538 (仅限购买用户加群)
购买用户请加QQ和QQ群,方便提供售后服务。
 
Q:为什么选择FireDAC,而不是UniDAC?
A:FireDAC和UniDAC都是非常老牌优秀的数据库连接组件,但FireDAC更适合用在三层架构中使用,因为FireDAC查询的数据保存为流(SaveToStream)的速度比UniDAC差不多快10倍!!
【更新历史】
v4.6.6.7 2016.06.16 更新
=========================
1.新增 支持 GROUP BY 语句分页。
2.新增 阿里大鱼短信验证接口。
3.优化 长连接处理机制,网络异常断开重连更及时。
4.优化 表字段字典功能代码。
5.优化 自动获取表名称处理方尸一般情况下无需指定 UpdateOptions.UpdateTableName,会自动获取。
6.修复 DemoClientTest的一些已知问题。
 
v4.6.5.16 2016.05.16 更新
=========================
1.增加 KeepaliveOn 属性,设置为 True 客户端可和服务端保持长连接。
2.增加 用户验证编译开关(关闭后KeepaliveOn无效)。同时设置 rtcMW.inc 和  rtcMW.Comp.Client.pas 中的编译开关 {$DEFINE UserAuth}。
 
v4.6.5.4 2016.05.04 更新
=========================
1.增加 支持 Delphi 10.1 Berlin。
2.增加 REST 功能重新回归,并重构了全部代码,改为插件模尸可通过 DLL/BPL 等方式自由扩展。
3.更新 单文件前缀改为 rtcMW(rtc Middleware rtc中间件)
4.更新 用户验证机制改进,用户名/密码输错误三次后,要求输入验证码。
5.增加 远程函数文件传输功能,包含文件上传、文件下载、远程文件列表获取。
6.增加 TRFDataSet.AfterTimeOut 事件,异步查询数据很有用。
7.增加 远程函数访问用户验证机制。
8.修复 不支持排序分页的问题。
9.增加 支持计算超大文件MD5的函数,可显示进度。
 
!!! 请注意,此版本改动较大,重构了部分代码,需要卸载原有客户端控件,安装客户端控件,新的客户端控件包含(TRFConnection,TRFDataSet,TQNConnection,TQNDataSet)。
!!! 1.客户端控件名称 TQNConnection 改为 TRFConnection,TQNDataSet 改为 TRFDataSet(RF = Remote Function)。
!!! 2.客户端控件单名称由 QNDataSet.pas 改为 rtcMW.Comp.Client.pas
!!! 不想升级的基友,可以继续使用老版本。
 
v3.6.2.26 2016.02.26 更新
=========================
1.增加 数据库连接设置“增、删、改、DDL”权限控制。
---EnableDelete = True,允许删除数据;
---EnableUpdate = True,允许更新数据;
---EnableInsert = True,允许插入数据;
---EnableDDL = True,允许 DROP、CREATE、ALTER、TRUNCATE 等操作。
 
v3.5.12.X 2015.12.5 更新
=========================
1.增加 IP黑名单设置。
2.增加 显示客户端信息列表。
3.更新 界面布局。
 
v3.5.11.22 2015.11.22 更新
=========================
1.增加 “卸载服务”、“停止服务”需要输入密码验证。
2.修复 一个设置密码后,启动时报AV的问题。
 
 v3.5.10.2 2015.10.02 更新
===============
1.增加 支持多结果集,通过QNDataSet.NextRecordSet和PreviousRecordSet获取下/上一数据集。
2.增加 支持 Array DML,这是FireDAC独有的特性,批量插入速度快令人震精,据EMB官方本机Oracle测试,插入速度可达10万条/秒以上,详情请参看:http://picimg.witcp.com/pic/docwiki.embarcadero.com/RADStudio/Seattle/en/Performance_of_the_Array_DML_Command_(FireDAC)
3.增加 QNDataSet重载一个Open方法,方便执行SQL。
 
v3.5.8.29 2015.8.29 更新
===============
1.增加 支持 Delphi 10 Seattle,
2.增加 支持MongoDB。
3.增加 QNDataSet支持iOS64。
4.增加 QNConnection.CloseConnectionDef方法。
5.增加 数据连接设置中的“连接名称”支持中文。
6.修复 由于拼写错误导致QNDataSet.RowsAffected有时无效的问题。
7.优化 当数据库出现异常后能自动连接数据库,如数据库服务器停止或网络断掉。
 
v3.5.8.11 2015.8.11 更新
===============
1.增加 登录密码验证,默认密码为 qq64445322,可以设置密码为空。
2.增加 日志缓存,可快速写入日志文件。
3.更新 日志显示方尸改用ListView显示更快更流畅更直观。
4.更新 内存使用大小获取方式。
5.修改 删除QNSrv.dpr工程,普通版合并到QNSvcMgr.dpr工程。
 
v3.5.7.15 2015.07.15 更新
===============
1.增加 支持存储过程输出参数并能获取返回值。
2.更新 最大连接数限制方法。
3.更新 删除端口占用检测函数,某些机器上端口检测奇慢无比。
4.修复 SQL参数插入数据不支ftBlob字段的问题。感谢 HenryXu(55***082)捐献源码。
5.删除 DataProvider JSON服务器接口,目前功能太弱有点鸡肋,以后完善再加入。
 
v2.5.6.25 2015.6.25 更新
===============
1.增加 获取系统时间接口,QNConnection.ServerDateTime。
2.增加 TQNDataSet.FormatOptions、FetchOptions参数传递到服务器端。
3.修改 TQNDataSet.ResourceOptions和UpdateOptions参数通过Stream传递到服务端。
4.修复 64位程序限制一个实例(RestoreIfRunning)无效的问题。
5.修复 64位程序使用VCLStyles的一处错误,更新vcl-styles-utils库。
6.优化 汉化部分日志信息。
 
v2.5.5.20 2015.5.20 更新
===============
1.增加 设计期TQNDataSet可自动关联TQNConnection。
2.修改 日志信息共享方式由Socket改为内存映射。
3.修改 服务端非服务版可显示日志。
 
v2.5.5.04 2015.5.4 更新
===============
1.增加 支持 XE8。
2.增加 支持 Teradata 数据库。
3.增加 系统CPU占用率、内存使用、连接数峰值、连接数峰值时间等状态显示。
4.增加 获取客户端IP的接口,访问QNConnection.ClientAddr属性即可。
5.增加 EncodedUpdateOptions和EncodedResourceOptions 属性,可将TQNDataSet的UpdateOptions和ResourceOptions更多参数传递给服务器端。
6.增加 Android和iOS平台QNDataSet支持阻塞模式。
7.修改 为Windows为服务模式。QNDataSvc.exe开机后可自动启动,无需登录系统。首次启动QNSvcMgr.exe设置好数据库连接,安装服务和启动服务。
 
v2.5.3.06 2015.3.16 更新
===============
1.增加 图片验证码验证。
2.优化 删除一些无关紧要的设置选项。
 
(咨询特价).2.9 更新
===============
1.修复 PostgreSQL无法分页查询的错误。
2.增加 一个带源码的restful客户端演示。
3.增加 换肤功能,使用了自带的VCLStyle。
 
(咨询特价).26 更新
===============
1.增加 编译时选择数据库类型,可以去掉不要的数据库类型。
2.增加 MSSQL数据库参数增加 ODBCDriver 参数,若是MSSQL2000数据库,请设置为"SQL Server",MSSQL2005以上建议使用SQL Server Native Client。
3.优化 提高新建MSSQL设置窗口的载入速度。
4.优化 多表更新,支持事务。
5.优化 TQNDataSet.UpdateOptions.UpdateTableName、KeyFields改为选填项,多表更新才需要指定。
 
(咨询特价).1.17 更新
================
1.优化 TQNDataSet.ConnectionDefName 改为选填项,若为空,服务器则使用默认的。
2.新增 主从表Demo增加:增、删、改等功能。
3.优化 服务端新建数据库配置,增加一些默认参数,比如开启连接池等。
 
(咨询特价).1.10 更新
================
1.增加 支持多账套多数据库。
2.增加 支持更多数据库,已全面支持FireDAC所支持的16种数据库。
3.优化 数据库参数配置,提供更多更全面数据库连接参数。
4.优化 一些界面改进。
 
(咨询特价).24 更新
================
服务端:
1.增加 对SQLServer2000的支持。
2.增加 “连接数限制”,连接数达到限定值后客户端会收到如“连接数已达到最大值xx,请稍候重试。”,默认值为 0,即不限制。
3.增加 FireDac Monitor日志的记录,方便调试使用。
4.修复 SQLite中文乱码的问题。
 
客户端:
1.增加 TQNDataSet.Blocking(阻塞)属性,移动平台只能用非阻塞模尸需要设置TQNDataSet.Blocking=False。
2.增加 Android客户端Demo。
3.增加 主从表Demo
3.增加 Delta转换为SQL语句。
 
【客户端使用方法】
vConnection := TQNConnection.Create(nil);
//服务器地址
Connection.ServerAddr := '127.0.0.1';
//服务端端口
Connection.ServerPort := '8081';
//安全密钥,需要和服务端配对使用
Connection.SecureKey := '123abc';
//强制加密
Connection.ForceEncryption := True;
//快速压缩
Connection.Compression := cFast;
 
// TQNDataSet 继承FireDAC中比TClientDataSet还强大的内存表TFDMemTable
DataSet := TQNDataSet.Create(nil);
DataSet.Connection := Connection;
 
//==================
//查询数据 BEGIN
//==================
DataSet.SQL.Text := 'SELECT * FROM City WHERE Id>:Id';
DataSet.ParamByName('Id').AsInteger:=100; 
DataSet.PageSize := 10;
DataSet.Open();
// 下一页
DataSet.NextPage;
// 上一页
DataSet.PriorPage;
// 最后一页
DataSet.LastPage;
// 首页
DataSet.FirstPage;
//==================
//查询数据 END
//==================
 
//==================
//Delta 更新 BEGIN
//==================
// 新增记录
DataSet.Append;
DataSet.FieldByName('Name').AsString:= '全能中间件';
DataSet.Post;
 
//修改记录
DataSet.Edit;
DataSet.FieldByName('Name').AsString := '好';
DataSet.Post;
// 删除记录
DataSet.Delete;
//更新到服务器
DataSet.ApplyUpdates;
//==================
//Delta 更新 END
//==================
 
//事务更新多个Dataset
Connection.ApplyUpdates([QNDataSet1, QNDataSet2,...]);
 
//批量插入数据
for I := 0 to 100  do
begin
  DataSet.Append;
  DataSet.Fields[0].AsLargeInt := CustomerID;
  DataSet.Fields[1].AsString := '中文' + GetRandomCustomerName;
  DataSet.Fields[2].AsString := (18600000001 + I).ToString;
  DataSet.Fields[3].AsBytes := GetRandomPhotoBytes(I);
  DataSet.Post;
end;
DataSet.ApplyUpdates;
 
//也可以这样
DataSet.SQl.Text := 'INSERT INTO Customers(CustomerID,ContactName,Phone) VALUES(:CustomerID,:ContactName,:Phone)';
DataSet.ParamByName('CustomerID').AsLargeInt := GetLargeIntUniqueID;
DataSet.ParamByName('ContactName').AsString := '中文' + GetRandomCustomerName;
DataSet.ParamByName('Phone').AsString := (18600000001 + I).ToString;
DataSet.ExecSQL;
 
//多表事务更新
QNConnection1.ApplyUpdates([MasterDataSet, DetaiDataSet]);
 
【服务端和客户端截图】
 
 
Android 运行效果:
 
热门设计服务