Delphi2010 DataSnap入门 (二)

简介: 我们来做个简单的数据库连接测试.在上个学习的基础上,我们打开Server的ServerMethodUnit1模块,在设计界面放上三个控件:SQLConnection1: TSQLConnection;SQLDataSet1: TSQLDataSe...

我们来做个简单的数据库连接测试.

在上个学习的基础上,我们打开Server的ServerMethodUnit1模块,在设计界面放上三个控件:

SQLConnection1: TSQLConnection;
SQLDataSet1: TSQLDataSet;
DataSetProvider1: TDataSetProvider;

注意:

1、如果使用sa,如果没有密码的话会连接失败,需要建立一个带密码的用户或者将sa设置上密码.

2、如果连接SQL Server时报告错误,可以尝试安装一下MS SQL Server 2008 Native Client,这个包同样可以应用在SQL Server 2000中.

然后将SQLDataSet1的SQLConnection设置为SQLConnection1,并且在CommandText中输入命令,比如:select * from jobs (连接到pubs数据库),设置Active为True.

最后一步,将DataSetProvider1的DataSet设置为SQLDataSet1.

OK,我们的服务器就设计完成了,编译运行.

 

接下来, 我们来做一个客户端.在以前的DataSnap版本中(D7中好像是这样,其他版本没有测试),像刚才我们设计的东西要放在Remote Data Modul中,在连接的时候要使用DCOMConnection或者SocketConnection,现在不用了.

再打开我们上次设计的客户端程序,在窗体上放置几个数据处理控件,来吧,像一般的数据应用程序那样放入数据感知控件:

DBGrid1: TDBGrid;
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;

然后我们要放入其他连接远程应用要用到的控件:

SQLConnection1: TSQLConnection;
DSProviderConnection1: TDSProviderConnection;

设置SQLConnection1的Driver为DataSnap,Connected为True(注意运行服务器),设置DSProviderConnection1的SQLConnection为SQLConnection1,注意,下面是很重要的一步,即在ServerClassName中输入TServerMethods1,不知道Delphi为什么没有自动取出,这里需要手工录入.

再设置ClientDataSet1的RemoteServer为DSProviderConnection1,现在就可以在ProviderName中选择DataSetProvider1了,如果没有上面那一步,这里将没有列出.

好了,设置ClientDataSet1的Active为True,设置DataSource1的DataSet为ClientDataSet1,设置DBGrid1的DataSource为DataSource1(这些活都太熟了吧?)

我们已经可以在网格中看到取回的数据来了.

 

那么,我们可以编辑这些数据并更新回服务器吗?

让我们接着来.

在窗体上放置一个按钮,然后在Click事件中写上一句代码:

 

 

ClientDataSet1.ApplyUpdates(0);

 

 

运行客户端,然后试着修改一下数据并点击按钮....

你可能顺利的提交了数据,但如果你操作的表没有自到增长字段的话,如果有自动增长字段,比如你测试的时候也像我一样使用的是pubs数据库,然后操作的是jobs表...

天啊,出现了错误?

这是自动增长字段的问题,我们有两种解决方法:

1.Server端我们使用ADO来处理,ADO在处理自动增长字段时还是比较方便的.

2.如果比较喜欢使用dbExpress,我们需要像下面这样做个设定:

回到服务器程序,选择我SQLDataSet,然后将所以字段都加进来,然后选择自动增长字段,在属性中进行如下设置:

AutoGenerateValue设置为AutoInc;

ProviderFlags属性设置为:[pfInWhere,pfInKey];

OK,编译运行,再回到客户端测试一下吧.

 

其实对于自动增长字段的处理,你直接不让它出现在结果集中也可以.自己多做做测试吧.


好了,现在可以不用配置复杂的DCOM,不用运行ScktSrvr(因为DSTCPServerTransport1已代替了), 简单分发你的分布式应用系统吧!

 

初学,有不当的地方请高手指正!

相关文章
Delphi2010 DataSnap入门 (一)
DataSnap到了Delphi2010有了很大的变化,已经可以完全抛弃DCOM之类的东西了,在以前版本中建立一个DataSnap,需要使用DCOMConnection或者SockConnection来连接到服务器,而在Delphi2010中提供了一个新的连接组件:TDSProviderConnection,可以更方便地来连接服务器.
1141 0
|
Windows 小程序 程序员
096_《Delphi5高级编程丛书之二:GUI编程》
《Delphi5高级编程丛书之二:GUI编程》 Delphi 教程 系列书籍 (096) 《Delphi5高级编程丛书之二:GUI编程》 网友(邦)整理 EMail: shuaihj@163.
1206 0
|
API Windows 程序员
084_《Windows网络编程之Delphi篇》
《Windows网络编程之Delphi篇》 Delphi 教程 系列书籍 (084) 《Windows网络编程之Delphi篇》 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 Part3 作者: 萧秋水 文娟 丛书名: 计算机编程系列丛书 出版社:清华大学出版社 ISBN:7900630945 上架时间:2001-2-27 出版日期:2001 年1月 页码:280 版次:1-1 内容简介 Internet技术无疑是当今计算机技术的最大热点。
2943 0
|
SQL 数据可视化 数据库
094_《Delphi6程序设计从入门至精通》
《Delphi6程序设计从入门至精通》 Delphi 教程 系列书籍 (094) 《Delphi6程序设计从入门至精通》 网友(邦)整理 EMail: shuaihj@163.com 下载地址: 下载 作 者:黄文钰编 出 版 社:科学出版社 出版日期:2002-08 ISBN:703010754 版 次:1 包 装:平装 开 本:大32开 页 数:641页 印 张:1次 内容简介 Delphi 6是Borland的最新力作,不但继承了Delphi本身就有的强大核心,并且增加了许多新功能。
1312 0
|
程序员 数据库
022_《Delphi模式编程》
《Delphi模式编程》 Delphi 教程 系列书籍 (022) 《Delphi模式编程》 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Pdf   作者: 刘艺 丛书名: Borland/Inprise核心技术丛书 出版社:机械工业出版社 ISBN:7111149491 上架时间:2004-9-11 出版日期:2004 年9月 开本:16开 页码:509 版次:1-1 内容简介 《delphi模式编程》是一本delphi程序员的模式入门和实践读物。
1381 0
|
存储 容器
030_《Delphi COM深入编程》
《Delphi COM深入编程》 Delphi 教程 系列书籍 (030) 《Delphi COM深入编程》 网友(邦)整理 EMail: shuaihj@163.
1377 0
|
Windows
069_《Delphi7组件编写者指南》
《Delphi7组件编写者指南》 Delphi 教程 系列书籍 (069) 《Delphi7组件编写者指南》 网友(邦)整理 EMail: shuaihj@163.
1206 0
|
Web App开发 程序员 数据库
019_《Delphi第三方控件使用大全Ⅱ》
《Delphi第三方控件使用大全Ⅱ》 Delphi 教程 系列书籍 (019) 《Delphi第三方控件使用大全Ⅱ》 网友(邦)整理 EMail: shuaihj@163.
2131 0
|
BI 数据库 容器
065_《Delphi7组件编程参考手册》
《Delphi7组件编程参考手册》 Delphi 教程 系列书籍 (065) 《Delphi7组件编程参考手册》 网友(邦)整理 EMail: shuaihj@163.
1262 0
|
BI 数据库
044_《Delphi程序设计基础教程》
《Delphi程序设计基础教程》 Delphi 教程 系列书籍 (044) 《Delphi程序设计基础教程》 网友(邦)整理 EMail: shuaihj@163.
1159 0