转:https://blog.csdn.net/a00553344/article/details/51670486数据库
1. 一个典型的DataSnap服务器至少须要三个控件:服务器
TDSServer: DataSnap的逻辑核心控件,控制服务器的运行。app
TDSServerClass: DataSnap服务端服务导出控件,经过OnGetClass事件来导出服务端的类及方法供客户端的远程调用。框架
做为服务端导出给客户端远程调用的类须要知足如下两个条件:函数
从TComponent类派生。ui
须要有{$METHODINFOON}指令。加密
一个通信控件:采用TCP的话,选用TDSTCPServerTransport控件,采用HTTP的话,选用IDSHTTPService控件。.net
2. 客户端利用一个TSQLConnection控件,Driver设置为Datasnap后,点右键就能够从服务端导入能够远程调用的类及方法。orm
这一篇详细描述如何利用delphi提供的向导自动建立一个DataSnap服务器。blog
File > New > Other > DelphiProjects [or C++Builder Projects] > DataSnap Server > DataSnap Server
1. 三种选择:
Forms Application : 标准的Forms类型V应用程序。
Console Application: 工做台应用程序。
Service Application: 服务类型的应用程序。
这里选择第一种Forms Application
2. 二种选择:
VCL application : 传统的VCL框架
FireMonkey application: 跨平台的FireMonkey框架
这里选择VCL application,由于DataSnap服务端一般运行在Windows服务器上,因此选择VCL框架便可。
3. 这里包括通信协议、远程调用是否须要受权。。。。等等,这里先按默认的设置。
Protocols:服务端和客户端之间的通信协议。这里能够多选,表示服务端同时支持多种通信协议。
Authentication:受权或验证。若是勾选,表示客户端链接到服务端的时候须要身份验证。带有Authentication的服务端会增长一个验证控件TDSAuthenticationManager。
Server Methods Class:服务器方法类,由服务端导出给客户端远程调用。一般服务端要实现的供客户端远程调用的函数及方法都会放在这个类里面,再经过TDSServerClass的OnGetClass事件导出给客户端远程调用。
Filters:在客户端和服务端之间过滤(加密或是压缩)数据。勾选后,一般会在TDSTCPServerTransport和IDSHTTPService控件的Filters属性中增长加密和压缩的项。注意除了设置服务端TDSTCPServerTransport和IDSHTTPService控件Filters属性外,也须要在客户端指定一个相应的过滤器。
JavaScript Files:在生成DataSnap REST Server的时候,生成JavaScript接口文件,供客户端调用使用。
Mobile Connectors:提供移动端调用服务端导出类的一些接口文件。
4. 选择TCP的通信端口,按默认设置。
5. 用于远程调用的服务器端函数方法所在类的实现方式(继承方式,从不一样的祖先类继承,具有了不一样的功能)。
TComponnet:从TComponent类继承,全部导出给客户端使用的功能都须要进一步具体实现,由于TComponent类几乎不提供什么功能。
TDataMoudle: 从TDataMoudle类继承,能够放入非可视化控件,好比数据库访问控件。这样,服务端就能够直接利用这些控件访问数据库服务器。可是,访问数据库的链接,数据和数据集不一样直接导出给客户端使用,须要服务端进一步实行将数据传输给客户端使用。
TDSServerModule: 从TDSServerModule类继承,它既包含了TDataModule的功能,又能够直接将与数据库服务器的链接和数据集直接暴露给客户端调用,客户端能够很是方便的经过DataSnap服务端直接访问数据库服务器。这个方式普遍应用于客户端是移动端的应用中,由于访问各类数据库须要数据库客户端的驱动或是函数,移动端一般都没有或是安装不了这些数据库客户端驱动,因此将这些数据库客户端驱动都安装到DataSnap服务端上去,由DataSnap服务端来实现数据的访问和存取,而客户端则直接使用DataSnap服务端导出的数据库链接和数据集来访问和存取数据库,同时客户端并不须要安转各类数据库的客户端驱动。
6. 选择Finish,这样一个DataSnapServer就创建了。
————————————————
版权声明:本文为CSDN博主「a00553344」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接及本声明。
原文连接:https://blog.csdn.net/a00553344/article/details/51670486