Delphi2010 DataSnap入门 (一)

DataSnap到了Delphi2010有了很大的变化,已经可以完全抛弃DCOM之类的东西了,在以前版本中建立一个DataSnap,需要使用DCOMConnection或者SockConnection来连接到服务器,而在Delphi2010中提供了一个新的连接组件:TDSProviderConnection,可以更方便地来连接服务器.

先来学习一个简单的DataSnap:

新建一个工程,在Delphi Project中选择DataSnap Server组,然后选择其中的DataSnap Server,点击确定,然后选择缺省设置即可.系统会生成一个工程框架.其实现在你什么代码都不用写,就已经建立好了一个DataSnap的服务器,那么这个服务器可以提供什么呢?它输出了一个类,这个类只有一个方法:

function EchoString(Value: string): string;

我们来测试一下这个服务器,建立一个普通的VCL From Application,然后在窗体中放入下面控件:

一个TSQLConnection,设置其Driver为DataSnap,并且Connected置为True.因为在本机测试,所以其他参数都不需要更改.(当然,需要先运行刚才建立的服务另,要不然会报告错误)

一个TSqlServerMethod,将其SQLConnection属性设为刚才的SQLConnection,然后在ServerMethodName属性中可以选择TServerMethods1.EchoString.这时你选择Params属性,会出现两个参数:Value和ReturnParameter,前者是方法EchoString传人的参数,后者是EchoString输出的值.

 

OK,到这里一切都设定好了,我们一句代码都没有编写,太说不过去了,还是放个按钮,然后在里面写下这几句代码吧:

 

SqlServerMethod1.ParamByName('Value').AsString:='Hello,Garfield !';
SqlServerMethod1.ExecuteMethod;
ShowMessage(SqlServerMethod1.ParamByName('ReturnParameter').AsString);

 

 

运行一下客户端,可以看到一个对话框,里面显示信息:Hello,Garfield !

时间: 2024-11-17 03:32:00

Delphi2010 DataSnap入门 (一)的相关文章

Delphi2010 DataSnap入门 (二)

我们来做个简单的数据库连接测试. 在上个学习的基础上,我们打开Server的ServerMethodUnit1模块,在设计界面放上三个控件: SQLConnection1: TSQLConnection;SQLDataSet1: TSQLDataSet;DataSetProvider1: TDataSetProvider; 注意: 1.如果使用sa,如果没有密码的话会连接失败,需要建立一个带密码的用户或者将sa设置上密码. 2.如果连接SQL Server时报告错误,可以尝试安装一下MS SQL

DELPHI DATASNAP 2010入门操作(2)不写一行代码,绿色三层我也行

没有一行代码的三层,功能肯定非常的简单,但是,再简单,我们也三层了,学习一 个东西,需要从入门开始就有兴趣,如果入门就给吓怕了,哪么后来何来信心学习呢? 现在就让我们开始吧,不只是没有华丽的词语,而是连用词都不专业,因为,我也只是 一个入门者. 我所用的版本为:Embarcadero Delphi 2010 Version 14.0.3593.25826 一.让我们 file->new->other ,再选 datasnap server ,或者F6,输入 datasnap

DELPHI DATASNAP 2010入门操作(1)为什么要用datasnap 2010

网上关于新版本的datasnap的资料不是太多,我现在所能找到的全面一些的,也就是 我们QQ群(DATASNAP[DELPHI]三层:67803772)里面的两位高手写的分析文章,且已经 转到了我的BLOG文章中,还有群里面的一位朋友翻译了的datasnap 的一些资料. 对于datsanp 来说,其实我也只能算是一个入门者,因为一些相关知识不是太熟悉, 所以我现在的水平也只能说是入门级的水平,对一些深入的知识,我并不能很好的理解 ,写下这个入门级的BLOG,主要目的是为了群里面的一些与我一样的

Delphi2010中DataSnap高级技术(4)—TCP keepAlive和KeepAliveInterval参数详解

Delphi2010中DataSnap,如果客户端异常掉线或拔掉网线,那么在服务端会留下一个TCP连接,这个连接会变成死连接(经过测试,如果windows的TCP保持连接禁用的话,三个小时该死连接还不消失).如果大量客户端并发,出现的死TCP连接过多,服务器内存和端口将会增加,直到占满服务器的端口和耗尽内存为止.如果这样的话,服务器无法健壮稳定的运行. 大家可以另开线程来监控客户端连接,但是今天要给大家讲解的不是这个方法,而是使用TCP协议自带的心跳包功能解决这个问题. 大家先了解一下 TCP

Delphi2010中DataSnap高级技术(2)—DataSnap服务端和客户端发布分发方法

这几天继续研究DataSnap技术. 针对服务器和客户端软件,如何发布呢?经过研究发现,分发方法非常简单! 服务器发布方法: 1.在unit ServerMethodsUnit1单元中,添加uses MidasLib;(添加MidasLib的目的是省去发布Midas.dll) 2.我用的是火鸟数据库,只需拷贝dbxfb.dll和fbclient.dll 分发的服务器软件只需三个文件:你的服务器程序.dbxfb.dll 和 fbclient.dll 客户端发布方法: 1.在客户端程序中加上uses

Delphi2010中DataSnap高级技术(3)—DataSnap服务器如何得到客户端的IP和端口

作为一个服务器软件,必须做到对客户端强有力的控制,想要控制,就必须得到客户端的网络基本信息,比如客户端IP和端口.有了客户端IP就能随心所欲操控客户端,比如终止某些客户端的连接.限制功能等等. 在delphi2010中的datasnap服务器如何获得客户端ip,的确花了我点时间,奇怪为什么这个功能不做的更人性化点呢,功能总是藏着掖着.还得让程序员像寻宝一样摸索,浪费时间.现在把我整理的结果奉献给大家,免得大家在花时间研究这个. 另外,通过研究发现,DSConnectEventObject.Cha

Delphi2010中DataSnap高级技术(7)—TDSServerClass中Lifecycle生命周期三种属性说明

Lifecycle 三种属性: Session.Invocation.Server 这三种属性都用在什么情况,有什么要注意的事项,Delphi2010中罕有说明. 如果乱用这三种属性,你的服务程序有可能崩溃,数据混乱,内存占用大,效率低等问题! 下面我对这三种属性的使用环境逐一介绍: 1. Session 说明:这是delphi2010中默认属性,也是delphi推荐设置.Session会为每个来自客户端的链接,建立一个线程来实例化.实例化是什么概念呢?就是这个线程把所有你将要用到的类.函数等等

Delphi2010中DataSnap高级技术(6)—加强服务程序对访问者的控制能力

1)作为一个服务程序,如果不限制客户端访问数量,后果将是很可怕的.如果有人恶搞,服务器不堪重负,内存将耗尽,最终服务器将宕机.如何限制访问者的数量呢? 我们可以设置一个变量,来记录来访者的数量,如果超过我们既定的数字,那么后续的连接服务器请求,都将被断掉. 2)限制了访问数量,但是如果不做密码身份认证,无关的人员也将能登陆服务器!解决办法是客户端传入用户名和密码,如果用户名和密码不正确,连接将被挂断. 在客户端的SQLConnection1中driver分类的username和password属

Delphi2010中DataSnap高级技术(5)—建立稳定服务程序之TCP心跳包的使用

为了能让我们的服务程序更加稳定,有些细节问题必须解决.就如上一讲中提到的客户端拔掉网线,造成服务器上TCP变成死连接,如果死连接数量过多,对服务器能长期稳定运行是一个巨大的威胁. 另外,经过测试,如果服务器上有TCP死连接,那么服务程序连接数据库,也会产生那个一个死连接.这样的话,给数据库服务器也造成威胁.所以,服务器程序编写的好坏,直接影响系统的稳定性! 如何解决TCP死连接的问题,有多种方法,其中最有效的就是心跳包技术. 我们在DSServer的OnConnect事件中加入心跳包代码 use