
DataSnap
文章平均质量分 77
董董
熟悉数据库应用系统开发。
QQ群:323514848
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多层数据库应用基于Delphi DataSnap方法调用的实现(一)返回数据集
从Delphi 2009开始,DataSnap技术发生了很大的变化,并在Delphi 2010和Delphi XE的后续版本中得到了持续的改进。Delphi 2009之前的DataSnap,虽然也实现了对中间层的方法调用,但那是基于COM技术的,实现起来比较麻烦,而且最关键的,是不能直接返回数据集(TDataSet)。如今,基于JSON的DataSnap,已经脱离了COM的束缚,可以很方便地直接返回数据集。我们在开发多层的数据库应用时,就可以采用全新的方式来进行,即客户端的所有数据查询和更新,可以被原创 2011-02-08 14:02:00 · 14533 阅读 · 3 评论 -
多层数据库应用基于Delphi DataSnap方法调用的实现(二)更新数据集
传统的数据集的读取和更新,是通过中间层的TDataSetProvider来完成的。TDataSetProvider负责从它上游的数据集读取数据生成Data包,再传给客户端;另一方面,在客户端提交更新时(TClientDataSet.ApplyUpdates),TDataSetProvider还负责解析上传的Delta包,并最终实现数据库的更新。现在在我们当前的方法调用方式下,不能再通过TDataSetProvider.ApplyUpdates来自动完成更新了,但是,我们还可以借用TDataSetPr原创 2011-02-08 18:29:00 · 11623 阅读 · 4 评论 -
利用DataSnap的回调功能在客户端显示服务器方法的执行进度
DataSnap Callback 执行进度原创 2011-02-11 14:49:00 · 6057 阅读 · 0 评论 -
多层数据库应用基于Delphi DataSnap方法调用的实现(三)对象池技术
<br />之前说到中间层通过向客户端暴露方法的方式提供服务,实现数据库数据的读取和更新。方法调用的方式,其潜在的意义,就是说中间层不保存客户端状态信息,就像WEB服务一样,客户端需要自己保存自己的状态信息。进一步说,就是中间层具体提供方法的业务对象实例,不是也不应该专属于某个客户端,它应该能够为不同的客户端调用提供服务。如果我们把业务对象实例放到对象池中集中存放,调用方法时随用随取,方法结束即放回池中。这样就可以实现业务对象实例服务于不同的客户端调用请求。更重要的是,利用对象池,能够最大化服务器各种资源的原创 2011-02-12 15:13:00 · 7320 阅读 · 5 评论 -
利用DataSnap进行数据流(TStream)的传递
<br />DataSnap服务器可以通过方法调用向客户端返回数据流,当然,也可以从客户端向服务器上传数据流,都是通过方法调用的方式来实现的。下面以一个简单的例子来演示。<br /> <br />服务器端实现:<br /> <br />{$METHODINFO ON}<br /> TFUService = class(TPersistent)<br /> public<br /> function ReplaceFile(FileName: string; FileStream: TStream)原创 2011-02-15 13:57:00 · 5782 阅读 · 4 评论 -
多层数据库应用基于Delphi DataSnap方法调用的实现(四)BLOB字段的读写
数据库的BLOB字段,可以用来保存字节流数据,比如图片、声音文件、html文档和大文本等等。Delphi传统的DataSnap技术,客户端数据集的数据包缺省不包含Blob字段数据,但可以在真正需要的时刻,实时自动从数据库取得,这种自动实现是基于IAppServer接口的。但在Da原创 2011-07-30 17:16:49 · 4758 阅读 · 1 评论 -
DataSnap服务器方法返回TClientDataSet的简易实现
DataSnap服务器方法不能直接返回TClientDataSet类实例,因为DataSnap不支持把TClientDataSet转化JSON对象,但是,DataSnap支持对TDBXReader的解析,我们可以在服务器端,利用TDBXReader的类方法,先把TClientDataSet实例转化为TDBXReader实例,然后把TDBXReader实例通过方法调用传到客户端,最后在客户端再利用T原创 2011-11-17 15:49:53 · 9114 阅读 · 3 评论 -
DataSnap客户端共享服务器端的数据库连接
客户端的一个连接(SQLConnection)能够共享服务器方法对数据库的访问连接。这样就可以做到一个客户端连接唯一关联服务器端的一条数据库连接;通过该共享连接,在客户端可以直接执行数据库的SQL语句以及存储过程,并且可以与服务器端的调用方法处于相同的事务上下文中。 共享连接的实现,是通过客户端调用服务器的一个返回TDBXConnection实例的方法来实现的。该返回实例并不是真正地返回到原创 2012-09-28 14:36:25 · 5163 阅读 · 4 评论