DataSnap与FireDAC三层】的更多相关文章

相交资料: http://blog.csdn.net/shuaihj/article/details/6129131http://www.cnblogs.com/hnxxcxg/p/4007876.htmlhttp://www.cnblogs.com/hnxxcxg/p/4008789.html PS: Unit2不再上传,因为这个是自动生成的(相关资中也提到了自动生成的方法,我在这里就不再多说了). 服务端实例: unit ServerMethodsUnit1; interface uses…
论DATASNAP结合FIREDAC的使用方法 自DELPHI XE5开始引入FIREDAC数据引擎以来,FIREDAC就正式成为了官方的数据引擎.一直到XE10.1 UPDATE1,据笔者观察,FIREDAC都是新版本开发当中的重中之重,其在DELPHI的地位自然是不言而喻. DATASNAP结合FIREDAC,中间件远程方法支持的数据序列格式可谓是丰富多彩.已经不仅仅是只支持OLEVARIANT格式序列.下面且听本人一一道来. 1)OLEVARIANT仍然得到继续支持,这使得成千上万的老程序…
Delphi 使用 Datasnap 进行三层应用开发,积累了几种技术,总结如下: 1.(推荐!)在 Datasnap 服务端 使用 TDatasetProvider,客户端 使用   TDSProviderConnection 1)采用 Datasnap Server ,可以使用TCP/IP.Http 通信.TDatasetProvider 能够提供 “元数据与业务数据”. 推荐:采用(FireDac技术) TFDConnection 连接数据库,通过 TFDQuery/TFDTable 向 …
采用服务器返回数据,一种是返回字符串数据例如JSON,跨平台跨语言,任何语言调用都支持兼容,类似WEBService. 第二种是紧密结合c++builder语言,传输DataSet,可以是ClientDataSet,也可以是FDMemTable,或TDataSet,这类好处是DataSet本身包含了很多属性,记录集的状态Insert/Modify/Delete,在服务端可以调用 不同的方法进行数据处理,客户端也只需要把dataset对象赋值就展示到dbgrid里了. 序列化. FDMemTabl…
[FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt 同样的程序,在2台win10 正常,1台win10 报连接占线! SQL Native Client  安装客户端 TFDStoredProc FetchOptions.Mode fmOnDemand fmAll 2018.10.9 fixed 方法是 页面的create事件里,所有的FDQuery,FDTable的FetchOptions->Mode…
基于Delphi的三层数据库系统的实现方法   1  引言 当前的数据库应用系统中,按其结构划分为两类,一类是两层结构的数据库应系统,另一类是多层结构的数据库应用系统. 两层结构的数据库应用系统包括客户/服务器(C/S)模式和浏览器/服务器(B/S)模式,它的特点是数据和程序分离,数据库服务器端管理数据,客户机或浏览器显示.访问和更新数据,因此可以分别进行开发和维护,同时也降低了数据库服务器的工作量,减小了网络的流量,具有较强的安全性,但当客户端程序或浏览器较多时,服务器的性能会明显下降,而且应…
一般http访问的地址是 http://localhost:8099/datasnap/rest/TServerMethods1/EchoString/abc 一.用FDConnection1连接Datasnap服务器 FireDAC  连接Datasnap服务端.这个是tcp协议连接通讯,长连接.服务端不是没个方法都建立实例释放实例,而是连接的时候建立,中间调用多少个方法都不释放实例,连接断开才释放. 不是.net的web api或者Datasnap 的 webmodule,纯粹是tcp. D…
Android开发数据库三层应用-DataSnap http://www.2ccc.com/news/Html/?1517.html 核心提示:我觉得Delphi最强大的的功能之一就是开发数据库三层应用的DataSnap,在Android上的实现,首先是完成服务器的设计:(1)利用向导完成DataSnap服务器的框架,如下图:由于是实验,所以选择VCL程序,如果是实际应用,建议Service程序我习惯使用TCP/IP作为通讯协议,简单且速度... 我觉得Delphi最强大的的功能之一就是开发数据…
前面的博客提到用FIREDAC全面替代COM那一套东西:DATAPROVIDER,OLEVARIANT,CLIENTDATASET,DBEXPRESS... 显然,DATASNAP的远程方法必须增加对FIREDAC数据集直接序列的参数类型. 从XE5的UPDATE2开始增加一个新的单元文件:Data.FireDACJSONReflect TFDJSONDataSets是一个数据集列表对象,顾名思义可以返回一个或多个数据集对象,不论是单表或者主从表数据都可传递. 服务端演示代码: function…
一.FireDAC调用DataSnap远程方法查询数据示例 1.服务端使用FDQUERY查询数据并返回TDATASET: function TServerMethods1.GetData(var sqlstr: string): TDataSet; var qry:TFDQurey; begin qry := TFDQuery.Create(nil); try qry.Connection := TServerContainer1.FDConnection1; qry.Open(sql); Re…
elphi 三层框架 DataSnap 的服务器端设置: DataSnap 框架有三个模块:DataSnap Server,Server Module,DataSnap Client Module. 当创新新的 DataSnap Server时,会产生三个文件,分别是: 1)ServerForm 窗口文件: -----  可以扩展了此功能,使得 ServerContainer 可以启动.停止服务,并记录会话的产生.关闭. 2)ServerContainer 服务容器: 主要是:DSServer,…
调用DATASNAP+FIREDAC的远程方法有时会执行二次SQL或存储过程的BUG 1)查询会重复执行的情形:Result := DATASETPROVIDER.Data会触发它关联的DATASET执行一次查询fdquery.Close;fdquery.sql.Clear;fdquery.sql.Text := sql;// d.qryOpen.Open; // 此行代码必须被注释掉,否则SQL会被二次执行Result := DATASETPROVIDER.Data; // 此行又会触发一次f…
firedac引擎DATASNAP多表查询和多表提交 属性设置FDTableAdapter1.SchemaAdapter := FDSchemaAdapter;FDTableAdapter1.DatSTableName := 't1';FDMemTable1.Adapter := FDTableAdapter1;FDTableAdapter2.SchemaAdapter := FDSchemaAdapter;FDTableAdapter2.DatSTableName := 't2';FDMemT…
DATASNAP数据提交之FIREDAC的TFDJSONDeltas FIREDAC的TFDJSONDeltas相当于CLIENTDATASET的DELTA,是作为CLIENTDATASET.DELTA的替代者出现的. TFDJSONDeltas是多个数据集DELTA的集合,一次性可以提交多个数据集修改后的数据到数据库. 服务端代码: function TServerMethods1.SaveData2(const accountNo, tableName: string; delta: TFD…
DATASNAP数据序列之FIREDAC的TFDJSONDataSets DELPHI XE5开始增加了新的数据引擎——FIREDAC,它是跨平台的数据引擎,WINDOWS.LINUX.MAC.APP......都可以使用. 随之DATASNAP也增加了新的远程方法返回数据类型——TFDJSONDataSets. 顾名思义TFDJSONDataSets是数据集列表,是多个数据集的集合,DATASNAP通过它一次可以返回多个查询结果数据集. 服务端代码: function TServerMetho…
非原创  摘自:http://hi.baidu.com/yagzh2000/blog/item/fc69df2cb9845de78b139946.html三层中主从表的操作(删除.新增.修改)一定要在一个事物中完成,那在Delphi中的事物又如何控制呢?我们在开发客户端时,如果为了在一个事物中而用TSqlConnection的事物来控制是徒劳的,没有一点意义,因为真正事物控制是在服务端的TDataSetProvider中产生的,它是自动产生事物的,如果有错误产生,它会回滚事物. 当客户端的Cli…
变量定义: varFDConnection: TFDConnection;qCustomers: TFDQuery; qOrders: TFDQuery;FDSchemaAdapter: TFDSchemaAdapter;FDStanStorageBinLink1: TFDStanStorageBinLink;... 服务端查询方法: TFDSchemaAdapter可以将多个关联的FIREDAC数据集(比如TFDQuery)序列为TSTREAM,当然适用于序列主从表数据. function T…
1. 开发环境说明:win 10 下安装了XE10.2和Delphi7 2.按照网上datasnap 三层与使用xe10 自带的samples 的例子,访问数据库都要报莫名的地址错误,这个太不人性化: Access violation at address 0088C4F7 in module 'DataSnapClient.exe'. Read of address 00000000 折腾了一星期多.怀疑过win10权限,怀疑过所有的dbexpress和FireDac驱动问题,因为我win10…
DBX Framework (dbExpress Framework )用了很长的时间, 一直觉得简单好用,但今天需要连MySQL5.7, 发现已经没办法用了,感觉是时候放弃用它来作数据连接了. 以前一直用它作C/S,三层的开发,真有些舍不得放弃,但没办法!以后连数据库还是要用FireDac了,毕竟各种数据库一直在不断的更新版本,FireDac也一直会不断的更新和完善,而DBX在数据库连接这块已经不会再更新了. 不过,虽然DBX连接数据库的驱动陈旧了,但它仍然在DataSnap体系扮演着重要角色…
论DELPHI三层的数据序列格式的变化 要窥三层的数据序列格式,我们可以通过观察DELPHI官方的客户端内存表. 早先流行的是TClientDataSet,它的Data和Delta属性的数据类型都是:OleVariant. OleVariant其实是微软公司为COM和COM+战略定义的统一的数据序列格式. 早年DELPHI的三层架构就是建立在COM的基础之上的,数据序列自然也就使用OleVariant. 随着软件COM战略的失败,微软公司已经放弃COM战略,现在改为.NET战略了. DELPHI…