DATASNAP数据序列之FIREDAC的TFDJSONDataSets DELPHI XE5开始增加了新的数据引擎——FIREDAC,它是跨平台的数据引擎,WINDOWS.LINUX.MAC.APP......都可以使用. 随之DATASNAP也增加了新的远程方法返回数据类型——TFDJSONDataSets. 顾名思义TFDJSONDataSets是数据集列表,是多个数据集的集合,DATASNAP通过它一次可以返回多个查询结果数据集. 服务端代码: function TServerMetho…
DATASNAP数据提交之FIREDAC的TFDJSONDeltas FIREDAC的TFDJSONDeltas相当于CLIENTDATASET的DELTA,是作为CLIENTDATASET.DELTA的替代者出现的. TFDJSONDeltas是多个数据集DELTA的集合,一次性可以提交多个数据集修改后的数据到数据库. 服务端代码: function TServerMethods1.SaveData2(const accountNo, tableName: string; delta: TFD…
OLEVARIANT——这个COM的序列格式,也是DATASNAP已使用了20年的序列格式,在20年以后的今天,终于有了它的替代者:FIREDAC的TFDJSONDataSets和TFDJSONDeltas,XE5 UPDATE2以上版本的DATASNAP的远程方法定义里面已经增加了这2种类型的支持.FIREDAC的TFDCONNECTION尚没有“GENERATE DATASNAP CLIENT CLASSES”的项,感觉不方便,笔者测试的时候使用TSQLCONNECTION生成的客户端代理类…
论DELPHI三层的数据序列格式的变化 要窥三层的数据序列格式,我们可以通过观察DELPHI官方的客户端内存表. 早先流行的是TClientDataSet,它的Data和Delta属性的数据类型都是:OleVariant. OleVariant其实是微软公司为COM和COM+战略定义的统一的数据序列格式. 早年DELPHI的三层架构就是建立在COM的基础之上的,数据序列自然也就使用OleVariant. 随着软件COM战略的失败,微软公司已经放弃COM战略,现在改为.NET战略了. DELPHI…
常用sql语句总结(二)(更新数据,序列,创建数据表,约束,注释) 一. 增 INSERT INTO 数据表(字段,字段,-) VALUES(值,值-); INSERT INTO emp(empno,ename,job,mgr,date,sal,comm,deptno) VALUES(1001,'张三','班长',8000,SYSDATE|NOW(),3000,null,20) 二. 修 UPDATE 数据表 SET 字段 = 值,-.. WHERE 过滤条件; UPDATE emp SET s…
MORMOT的数据序列 mormot服务器回复客户端通过Ctxt.OutContent属性. 此属性的类型是:SockString.   // property OutContent: SockString read fOutContent write fOutContent ; 继续跟代码,发现SockString是RawByteString类型. type {$ifdef UNICODE} /// define the fastest Unicode string type of the c…
msgpack的数据序列和还原 msgpack不仅可以序列一些常规的数据类型的数据,比如:string.datetime.integer...... 还能序列olevariant.stream 这就非常强大而完美了. procedure TynTcpMethod.SendPicture(AReceiverID: string; APicture: TMemoryStream); var LMsgPack: TSimpleMsgPack; LStream: TMemoryStream; begin…
https://www.cnblogs.com/bradleon/p/6827109.html 文章里写得非常好,需详细看.尤其是arima的举例! 可以看到:ARIMA本质上是error和t-?时刻数据差分的线性模型!!! ARIMA模型全称为自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model,简记ARIMA),是由博克思(Box)和詹金斯(Jenkins)于70年代初提出一著名时间序列(Time-series Approach…
优秀的数据序列和还原类----TSimpleMsgPack TSimpleMsgPack是D10天地弦的作品. 优点:至简,就一个单元文件实现,不需要引用其他单元. 缺点:不是标准的MSGPACK实现,不能跨语言兼容. 所以:TSimpleMsgPack只能用于DELPHI开发,不能用于其他语言. 而QDAC的QMsgPack却是标准的MSGPACK实现,能跨语言兼容. 有了它,从此数据的序列和还原不再是梦魔. 适用极广:可以适用于所有版本的DELPHI,不论D7还是最新的XE10.1,都支持.…
cross socket和msgpack的数据序列和还原 procedure TForm1.Button1Click(Sender: TObject); begin var pack: TSimpleMsgPack := TSimpleMsgPack.Create; pack.ForcePathObject('sql').AsString := '测试'; IdTCPClient1.IOHandler.Write(tidbytes(pack.EncodeToBytes)); //发送TBytes…
问题 你需要在数据序列上执行聚集函数(比如 sum() , min() , max() ), 但是首先你需要先转换或者过滤数据 解决方案 一个非常优雅的方式去结合数据计算与转换就是使用一个生成器表达式参数 比如: import os files = os.listdir("testPackage") print(files) # ['__init__.py', 'cookBook', 'secondPackage', 'cookBook.py'] 只会找testPackage 下面的一…
目录 前言 3. 地址族与数据序列 3.1 分配给套接字的 IP 地址与端口号 3.2 参数 IP 地址 3.2.1 IPV4 地址的结构体 3.2.2 地址族(Address Family) 3.2.3 端口号 3.2.4 IP 地址 3.2.5 3.3 实例参考 3.4 网络字节序 3.4.1 字节序 3.4.2 字节序转换相关函数 3.5 字符串转为网络字节序的整数形 3.5.1 inet_addr() 3.5.2 inet_aton() 3.5.3 inet_ntoa() 3.6 网络地…
变量定义: varFDConnection: TFDConnection;qCustomers: TFDQuery; qOrders: TFDQuery;FDSchemaAdapter: TFDSchemaAdapter;FDStanStorageBinLink1: TFDStanStorageBinLink;... 服务端查询方法: TFDSchemaAdapter可以将多个关联的FIREDAC数据集(比如TFDQuery)序列为TSTREAM,当然适用于序列主从表数据. function T…
服务端代码: uses Data.FireDACJSONReflect, FireDAC.Stan.Storage, FireDAC.Stan.StorageBin, FireDAC.Stan.StorageJSON, FireDAC.Stan.StorageXML; 1)查询 function TServerMethods1.QuerySql2(const accountNo, sql: string): TFDJSONDataSets;var d: TfrmDB;begin Result :…
使用流做中转 procedure CopyDataSet(const ASource, ADest: TFDAdaptedDataSet);var LStream: TStream;begin LStream := TMemoryStream.Create; try ASource.SaveToStream(LStream, TFDStorageFormat.sfBinary); LStream.Seek(0, TSeekOrigin.soBeginning); ADest.LoadFromSt…
分配IP地址和端口号 IP是Internet Protocol(网络协议)的简写,是为收发网络数据而分配给计算机的值.端口号并非赋予计算机的值,而是为区分程序中创建的套接字而分配给套接字的序号 网络地址(Internet Address) 为使计算机连接到网络并收发数据,必须向其分配IP地址.IP地址分为两类: IPv4(Internet Protocol version 4):4字节地址族 IPv6(Internet Protocol version 6):16字节地址族 IPv4和IPv6的…
package org.rui.io.xml; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.util.Arrays; import java.util.List; import nu.xom.Document; import nu.…
方法一:增加TCP读写缓存的大小       DataSnap Server中负责TCP/IP通讯的组件是TDSTCPServerTransport,它默认的TCP/IP读写缓冲区的大小为32KB,由BufferKBSize属性来设置.测试结果显示,这个默认的缓冲区大小,只适合返回很小的数据集的情况,在返回较大的数据集.或者上传文件到数据库/从数据库下载文件等情况下,会造成严重的数据传输效率低下的问题,与正常情况相比可达到了十几倍的差距,把缓冲区的大小调整到512KB甚至更高一点就能解决此问题.…
最近做一个项目时,需要在dataGird中插入<input>,即文本输入框,当点击提交时,需要把文本框里填的数据返以及其他列的一些信息以json数组的格式返回到后台,虽然我实现了该功能,但一直没找到简便的方法,今天终于在一位版主的点拨下找到了非常简单的方法. var all = $("#dg").datagrid("getData"); var json =JSON.stringify(all.rows); 仅仅只需要这两行代码,其中dg是datagir…
上一篇文章介绍了套接字的创建过程,这篇文章主要讨论分配给套接字的IP地址和端口号的相关知识. IP地址和端口号 IP(Internet Protocol,网络协议)地址是收发网络数据而分配给计算机的值,端口号则并非赋予计算机的值,而是为了区分计算机程序所创建的不同套接字而分配给套接字的编号. 网络地址 IP地址分为如下两类,其中,IPv6是为了应对2010年前后IP地址耗尽的问题而提出的新标准.不过,目前普遍使用的主要还是IPv4,IPv6的普及可能还需要一段时间. IPv4(Internet…
C/C++网络编程2中介绍了套接字,这一节介绍给套接字分配ip和端口号.ip用于标识一台主机,端口号用于标识一个主机中的一个应用程序,端口号占16位,0到65535,其中0到1023是知名端口号. 表示IPv4的结构体: struct sockaddr_in { sa_family_t sin_family; // 地址族 uint16_t sin_port; // 端口号 struct in_addr sin_addr; // 32位ip地址 ]; // 不使用 }; struct in_ad…
论DATASNAP结合FIREDAC的使用方法 自DELPHI XE5开始引入FIREDAC数据引擎以来,FIREDAC就正式成为了官方的数据引擎.一直到XE10.1 UPDATE1,据笔者观察,FIREDAC都是新版本开发当中的重中之重,其在DELPHI的地位自然是不言而喻. DATASNAP结合FIREDAC,中间件远程方法支持的数据序列格式可谓是丰富多彩.已经不仅仅是只支持OLEVARIANT格式序列.下面且听本人一一道来. 1)OLEVARIANT仍然得到继续支持,这使得成千上万的老程序…
相交资料: 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…
msgpack配合FIREDAC传输多表数据 procedure TForm1.Button1Click(Sender: TObject);var ms, ms2: TMemoryStream; pack: TSimpleMsgPack;begin ms := TMemoryStream.Create; FDQuery1.SaveToStream(ms, sfBinary); // FDQuery1数据序列为流 ms2 := TMemoryStream.Create; FDQuery2.Save…
[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…
随着XE6,XE7,以及半年以后即将发布的XE8,DATASNAP将顺应跨平台的需要, 有可能的情况是这样的:XE8,DATASNAP写的中间件将可以运行在LINUX服务器上面. 大家都知道COM是WINDOWS特有的东西,为了跨平台,COM将被弃用. DATASNAP残留的COM基因的东西统统将被弃用,COM的数据序列格式OLEVARIANT将被弃用, CLIENTDATASET的DATA和DELTA属性是OLEVARIANT,因此也将被弃用,CLIENTDATASET的替代品是FDMEMTA…
又花时间试了试FireDAC,本想找到一些办法,让FireDAC取数据能和DBX样快,最终还是失败了,DBX实现是太快了,3472第记录(110个字段的表),0毫秒就抓过来了, FireDAC最快也要将近20毫秒.不过FireDAC已经把数据抓到TFDDatSTable中,知道记录条数了,(比DBX要强,DBX的DBXReader是不知道记录数的) 如果只是让FDCommand执行SQL后,不Feach到TFDDatSTable, 那么也是0毫秒(但读取不了数据的). 除此之外, FDMemTa…
有同仁需要远程方法传输自定义的数据类型,他以为要自己写代码会很复杂,其实DATASNAP早就为我们想到了. datasnap的数据序列和还原真是无与伦比的强大,其远程方法支持自定义对象传参,DATASNAP会自动使用JSON序列和还原自定义的对象. 1)自定义一个对象 type TMyInfo = class(TObject) public AccountNo: string; SQL: string; Params: string; RecsMax: Integer; end; 2)服务端远程…
提交数据的代码如下: procedure TForm1.btnSaveClick(Sender: TObject);var LDeltas: TFDJSONDeltas;begin if FDMemTable1.State in dsEditModes then FDMemTable1.Post else Exit; LDeltas := TFDJSONDeltas.Create; TFDJSONDeltasWriter.ListAdd(LDeltas, '1', FDMemTable1); i…
datagride自带分页工具,当使用分页工具的时候,初始化datagride或者带数据提交到API里面时,会以Json对象的形式将数据传递到API控制器里面,当没有过滤条件或者请求参数.和提交参数的时候,JSON对象里只有[page和Rows]两个属性,这两个属性是用于后台分页,后台取值方法为:int pageindex = int.parse(value["page"].Tostring()) int pageSize = int.parse(value["Rows&qu…