大名鼎鼎
大名鼎鼎个人信息管理系统
博客园
首页
新随笔
新文章
联系
订阅
管理
posts - 18, comments - 8, trackbacks - 0
2011年5月21日
多层数据库应用基于Delphi DataSnap方法调用的实现-----------------对象池技术
摘要: 之前说到中间层通过向客户端暴露方法的方式提供服务,实现数据库数据的读取和更新。方法调用的方式,其潜在的意义,就是说中间层不保存客户端状态信息,就像WEB服务一样,客户端需要自己保存自己的状态信息。进一步说,就是中间层具体提供方法的业务对象实例,不是也不应该专属于某个客户端,它应该能够为不同的客户端调用提供服务。如果我们把业务对象实例放到对象池中集中存放,调用方法时随用随取,方法结束即放回池中。这样就可以实现业务对象实例服务于不同的客户端调用请求。更重要的是,利用对象池,能够最大化服务器各种资源的使用效率,而且对客户端的响应也更快了,因为业务对象实例早就创建好了,取来即用。其实,DataSnap
阅读全文
posted @ 2011-05-21 00:16 大名鼎鼎 阅读(310) 评论(0)
编辑
2011年5月20日
利用DataSnap的回调功能在客户端显示服务器方法的执行进度
摘要: 如果DataSnap服务器方法的执行时间比较长,这时候可能需要在客户端用进度条显示当前服务器方法的执行进度。要实现这种需求,现在可以利用DataSnap的回调功能,此功能是从Delphi 2010版本开始被引入的。要实现回调,服务器方法需要暴露给客户端一个或多个类型为TDBXCallback的参数。例如:...{$METHODINFO ON} TServerMethods1 = class(TComponent) private { Private declarations } public { Public declarations } function LongTimeRunFunc(In
阅读全文
posted @ 2011-05-20 22:15 大名鼎鼎 阅读(206) 评论(0)
编辑
利用DataSnap进行数据流(TStream)的传递
摘要: DataSnap服务器可以通过方法调用向客户端返回数据流,当然,也可以从客户端向服务器上传数据流,都是通过方法调用的方式来实现的。下面以一个简单的例子来演示。服务器端实现:{$METHODINFO ON} TFUService = class(TPersistent) public function ReplaceFile(FileName: string; FileStream: TStream): Integer; function GetFile(schema, FileName: string): TStream; end;{$METHODINFO OFF}//GetFile方法向客户
阅读全文
posted @ 2011-05-20 22:14 大名鼎鼎 阅读(159) 评论(0)
编辑
2011年5月19日
DataSnap 2009 系列之二 (方法篇)
摘要: 在过去客户端要调用远程服务器的方法需要通过在TLB里添加接口并且在服务器对象中实现在DataSnap 2009中调用远程服务器的方法是基于delphi的RTTI机制的想要一个类允许被远程调用需要做以下两点1.把该类和DSServerClass连接在一起procedureTMainForm.DSServerClassGetClass(DSServerClass:TDSServerClass;varPersistentClass:TPersistentClass);beginPersistentClass:=TSM;end;DSServerClass的OnGetClass就是用于完成此任务的注意:
阅读全文
posted @ 2011-05-19 20:53 大名鼎鼎 阅读(146) 评论(0)
编辑
DataSnap 2009 系列之三 (生命周期篇)
摘要: DataSnap 2009 系列之三 (生命周期篇)DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置当DSServer启动时从DSServerClass组件读取LifeCycle属性的值注意:LifeCycle的值由于在启动时就已经读取 启动后再修改LifeCycle的值将没有任何效果LifeCycle属性的值可以是以下三种字符串之一1.Session该选项为默认设置每个连接都会建立一个独立的服务器对象为客户端提供服务,服务器对象在连接关闭后释放因此多个客户端访问的是不同的服务器对象,是线程安全的2.Invocation对于每次服务端方法调用建立一个独
阅读全文
posted @ 2011-05-19 20:53 大名鼎鼎 阅读(69) 评论(0)
编辑
DataSnap 2009 系列之一 (连接篇)
摘要: Delphi 的MIDAS出来了这么多年终于有改进的版本了COM-FREE的DataSnap 2009真是清爽了很多DataSnap 2009 除了不支持回调和Intercept组件以外 其它的该有的都有了 而且还有很多强大的特性第一篇就先写点DataSnap 2009连接方面可能要用到的东西以后再继续写写关于生命周期的管理 对象池的应用 以及远程管理 远程方法调用等方面的东西吧。首先 建立个DataSnap 2009的服务器工程一共用到三个组件DSServer 服务配置组件 用于绑定其它的组件DSServerClass 可以看作是一个类的工厂 用于导出需要远程调用的服务端模块DSTCPSer
阅读全文
posted @ 2011-05-19 20:52 大名鼎鼎 阅读(165) 评论(0)
编辑
DataSnap 2009 客户端扩展
摘要: DataSnap 2009的客户端采用了原始的TClientSocket组件实现了通讯层 即简单效率也不错但是如果我们想要设置连接超时怎么办?想要设置代理服务器又该怎么办呢?能不能利用我们常用的网络控件(indy ics synapse...)来替代呢?在这里我基于synapse控件实现了一个自己的DataSnap客户端驱动注:synapase是一套比较不错的开源的第三方控件 这里我们要使用它的TCP控件来扩展支持代理服务器的使用 synapse 官方网址http://www.synapse.ararat.cz/doku.php synapse svn地址https://synalist.sv
阅读全文
posted @ 2011-05-19 20:51 大名鼎鼎 阅读(69) 评论(0)
编辑
2009年10月4日
高性能的socket通讯服务器(完成端口模型--IOCP)[转载]
posted @ 2009-10-04 01:40 大名鼎鼎 阅读(576) 评论(0)
编辑
2009年9月29日
WebBrowser操作Html[转]
posted @ 2009-09-29 21:31 大名鼎鼎 阅读(787) 评论(0)
编辑
WebBrowser、MSHTML在Delphi中的使用[转]
posted @ 2009-09-29 21:26 大名鼎鼎 阅读(132) 评论(0)
编辑
仅列出标题
下一页
<
2012年2月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
昵称:
大名鼎鼎
园龄:
7年5个月
粉丝:
1
关注:
0
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
最新随笔
1. 多层数据库应用基于Delphi DataSnap方法调用的实现-----------------对象池技术
2. 利用DataSnap的回调功能在客户端显示服务器方法的执行进度
3. 利用DataSnap进行数据流(TStream)的传递
4. DataSnap 2009 系列之二 (方法篇)
5. DataSnap 2009 系列之三 (生命周期篇)
6. DataSnap 2009 系列之一 (连接篇)
7. DataSnap 2009 客户端扩展
8. 高性能的socket通讯服务器(完成端口模型--IOCP)[转载]
9. WebBrowser操作Html[转]
10. WebBrowser、MSHTML在Delphi中的使用[转]
随笔分类
Delphi2010 DATASNAP
常用技术
随笔档案
(18)
2009年9月 (1)
2009年4月 (1)
2009年1月 (1)
2008年11月 (1)
2008年10月 (3)
2008年9月 (1)
2008年7月 (1)
2008年4月 (1)
2006年10月 (1)
2006年7月 (3)
2006年5月 (3)
2004年8月 (1)
文章分类
(6)
Delphi2010 DATASNAP(6)
常用技术
文章档案
(33)
2011年5月 (7)
2009年10月 (1)
2009年9月 (4)
2009年3月 (1)
2008年6月 (1)
2007年5月 (2)
2006年8月 (1)
2006年6月 (2)
2006年5月 (10)
2006年1月 (1)
2005年8月 (1)
2005年5月 (1)
2004年9月 (1)
最新评论
阅读排行榜
评论排行榜
推荐排行榜