Delphi2010 DataSnap 学习(二)


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

承上一篇.

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

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

sqlconnection1: tsqlconnection;

sqldataset1: tsqldataset;

datasetprovider1: tdatasetprovider;

c

注意:

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已代替了), 简单分发你的分布式应用系统吧!

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

附:

示例下载

注:使用示例连接本机数据库时请修改代码中的数据库连接信息.


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值