DataSnap 2009的简单使用

DataSnap 2009是从Delphi2009开始提供的新的DataSnap,对原有DataSnap大副改进,虽然保留了原来的基于COM的方式,但默认是使用新 的不基于COM的方式,这使得它成为轻量级的、灵活的多层应用技术。这也为将来的跨平台提供了基础。
Delphi2010继续新的DataSnap,应该叫DataSnap 2009呢?还是DataSnap 2010?命名不太明确。我更希望它叫DataSnap2.0。

一、新的DataSnap的第一种用法是服务器方法调用(server methods invoke ),这个有向导,使用起 来很简单。
工具条上点击New Items:



服务方法类的继承,我们就选默认的TDSServerModule,因为这个封装得最全面,后面一个比一个简单还需要我们写多余的代码。
ServerContainerUnit容器内已经给我们放置好了服务器端的控件,DSServerClass1.LifeCycle属性有3个选 项:Session、Server、Invocation,我们选默认的Session,这个使得我们的ServerMethods类的实例的生命周期是 一个连接会话。而Server是只产生一个实例服务于整个Server的运行期,我们的ServerMethods类需要对多个线程同时访问是安全的,也 就是不能因为多线程访问我们的类而导致出错。Invocation是每次调用都产生一个实例,虽然节省内存,但显然在大访问量的情况下效率低下。


如果我们建立Service服务程序,在这个单元内还自动生成了控制DataSnap启停的语句。
ServerMethodsUnit单元内已经为我们写好了一个EchoString方法,我们依样画葫芦就行了。
运行这个服务器,点击菜单Run,Run Without Debugging。
建立客户端,生成一个普通窗体程序,放置一个TSQLConnection控件,设置它的Driver为Datasnap,我们就可以勾选 Connected属性连接服务器了。
在TSQLConnection控件上点击右键,选择Generate DataSnap client classes,Delphi自动生成代理类,通过调用代理对象,我们就可以像调用本地方法一样调用服务器上的方法。


二、新的DataSnap的第二种用法是IAppServer接口的应用,这可以使新的DataSnap可以像原来的旧的DataSnap一样,直接用数 据控件连接远程服务器,读取、编辑、更新数据。
⒈用DataSnap向导生成服务器框架程序,在ServerMethodsUnit单元的数据模块窗体上,放上TSQLConnection、 TSQLQuery、TDataSetProvide。


设置好它们的关联,另外DataSetProvider1的Options要选中poAllowCommandText,以允许远程客户端发送命令。
我们可以看到,这些和旧的DataSnap的用法上基本上是一样的。
2.设置客户端。

  新建立一个VCL Forms程序,在窗体上放置TSQLConnection并设置连接刚才的服务器。

放置一个TDSProviderConnection,这个控件具有和服务器上的TDataSetProvider对接的功能,设置它的 SQLConnection属性为刚才放置的SQLConnection1。另外要设置它的ServerClassName属性,这个比较关键,必须设 置,否则打开数据集时会出现:Exception class EOleException with message 'Remote error: .AS_GetRecords method not found in the server method list'. 。这个属性在Object Inspector内没有下拉列表框,即使已经连接到服务器也没有,必须手工输入,这个或许是需要改进的地方。这里我们输入向导自动生成的服务器的类 名:TServerMethods2。
然后放置TClientDataSet控件,设置它的RemoteServer属性为刚才放置的DSProviderConnection1,如果已经连 接服务器了,就可以在ProviderName属性下拉框,选择DataSetProvider1,这个DataSetProvider1就是服务器那一 端的那个DataSetProvider1。
以后再放置TDataSource、TDBGrid、TDBNavigator,并关联,我们就轻车熟路了。
放置一个按钮,命名为btnSave,双击写事件:ClientDataSet1.ApplyUpdates(0);。
如图:

这里我连接的BlackFish数据库Employee,数据库文件位于C:/Documents and Settings/All Users/Documents/RAD Studio/7.0/Demos/database/databases/BlackfishSQL/employee.jds。连接的Country 表。
我们可以运行客户端,修改数据,点导航按钮的保存后,再点击btnSave保存到服务器数据库。然后我们用Data Explorer查看数据库表,确实已经被修改了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值