DataSnap 2009 系列之一 (系统连接篇)

转载 2011年01月11日 15:39:00

(连接篇)

Delphi 的MIDAS出来了这么多年终于有改进的版本了,COM-FREE的DataSnap 2009真是清爽了很多,DataSnap 2009 除了不支持回调和Intercept组件以外 其它的该有的都有了 而且还有很多强大的特性;

  第一篇就先写点DataSnap 2009连接方面可能要用到的东西,以后再继续写写关于生命周期的管理 对象池的应用 以及远程管理 远程方法调用等方面的东西吧。

  首先 建立个DataSnap 2009的服务器工程,一共用到三个组件:

    DSServer   服务配置组件 用于绑定其它的组件;

  DSServerClass 可以看作是一个类的工厂 用于导出需要远程调用的服务端模块;

  DSTCPServerTransport 传输组件 这里使用的是indy的tcpserver;

   将DSServerClass和DSTCPServerTransport 的Server设置成DSServer就可以了,客户端连接和断开连接时会触发DSServer的两个事件OnConnect和OnDisConnect,参数为 TDSConnectEventObject。

  我们看下该类的定义

    我们可以看到其中包含了两个属性ConnectProperties ChannelInfo:

    ConnectProperties 包含了客户端连接所传递的参数 Params 也就是一个TStrings的内容;

    ChannelInfo 里面有个很重的属性就是它的ID 其实是TIdTCPConnection对象的ID 所以我们可以直接强制转换成TIdTCPConnection;

  然后建立个DataSnap 2009的客户端工程,由于使用的DbExpress框架客户端连接用的是TSQLConnection组件,只要把Driver设置成Datasnap即可。连接的服务器地址通过HostName和Port来进行设定,下面我们就实现个简单的DEMO 客户端通过用户名和密码连接服务端 如果密码不争取服务端则断开连接。

  客户端主要函数

服务端主要函数

 

注意:OnConnect事件中还可以使用另外一种方式拒绝客户端连接,在代码中抛出个异常即可 在客户端会捕捉到一个TDBXError的异常 显示'Remote error ' 加上异常显示的消息。 

  效果图如下:

举报

相关文章推荐

DataSnap 生命周期

DataSnap 的服务器对象的生命周期依赖于DSServerClass组件的设置 当DSServer启动时从DSServerClass组件读取LifeCycle属性的值 注意:LifeCycle...

多层数据库应用基于Delphi DataSnap方法调用的实现对象池技术

之前说到中间层通过向客户端暴露方法的方式提供服务,实现数据库数据的读取和更新。方法调用的方式,其潜在的意义,就是说中间层不保存客户端状态信息,就像WEB服务一样,客户端需要自己保存自己的状态信息。进一...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

DataSnap 2009 系列之三 (生命周期篇)

DataSnap 2009 系列之三 (生命周期篇)

Delphi XE程序设计系列 2-开发DataSnap/REST服务器

====================================================== 注:本文源代码点此下载 =============================...

Delphi XE程序设计系列 2-开发DataSnap/REST服务器 .

2010-12-13 11:22 788人阅读 评论(2) 收藏 举报     在上次的文章中讨论了如何把传统的Delphi 主从架构应用程序逐渐转换为DataSnap JSON服务器...

Delphi XE程序设计系列 2-开发DataSnap/REST服务器

datasnap rest 服务器

Delphi XE程序设计系列 2-开发DataSnap/REST服务器

Delphi XE程序设计系列 2-开发DataSnap/REST服务器
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)