delphi xe2学习笔记(2)

本文详细介绍了如何使用DataSnap组件实现数据库服务,并解决在连接过程中遇到的问题,包括将dbxmss.dll文件正确放置到system32目录,以及如何在不同连接方式下配置TClientDataSet组件。
摘要由CSDN通过智能技术生成

又中断了,杯具的代码维护.

继续白皮书。

这下先专注提供数据库服务的DataSnap。按照白皮书的例子做好的服务端,然后接着做客户端,按照白皮书的顺序,先做只读的客户端,

TDataSource->TClientDataSet->TDataSetProvider->TSQLServerMethod->TSQLConnection,

这种连接方式中,TClientDataSet只要"ProviderName"中选择TDataSetProvider,"RemoteServer"不要设置(也不能设置,这个是以前版本用的)  ;TSQLServerMethod中的"ServerMethodName"选择你要的服务方法(一般是自己在服务端定义的输出数据集,这里补充下,白皮书中的例子是自定义个服务器方法,然后再自动产生客户端代理方法输出。但是用了TSQLServerMethod组件后,客户端就不要代理方法输出了,这才合理,一般项目IDE中自动产生的都产生好了,要改的话,也不可能是把客户端代理方法输出单元删了再产生,只要用TSQLServerMethod组件就可以输出服务端原来的方法或后来新增的方法) 。启动 服务端,在设计时设置TClientDataSet的Connected连接为True ,错误出来了 "failure to connnect: Unable to load  dbxmss.dll(ErrorCode 126). It may be missing in system path"。"dbxmss.dll"是TSQLConnection的"LibraryName"的值,这是找不到在什么地方了。电脑中搜索,果然system32中没有这个文件,倒是安装目录下的bin和bin64下有这个文件,2个目录下的文件名一样,只是大小不一样,看环境变量中的系统路径Path中也包含了这个目录,怎么还找不到呢?不纠结了,把这个"dbxmss.dll"拷到system32下,果然就行了。

下一步,再弄个能更新的客户端。按照白皮书说的,去了TDataSetProvider和TSQLServerMethod这2个组件,拖一个TDSProviderConnection出来,变成这样

TDataSource->TClientDataSet->TDSProviderConnection->TSQLConnection,这种连接中,TClientDataSet的"RemoteServer"和"ProviderName"都得用上了(嗯,有点混了,是的,混了,先不管,就先知其然不知其所以然吧),"RemoteServer"选择为刚才刚拖出来的TDSProviderConnection组件(嗯,"RemoteServer"名不符实了,要么放空,要么指向本地的,呵呵),"ProviderName"要手工输入了,输入什么呢?输入服务器的方法类,是类不是对象哟,一种TDSServerModule类,比如"TServerMethods1",也就是输出服务端方法的类。设置TClientDataSet的Connected连接为True,连上了。

后面准备是操作具体的数据,以及使用那个错误提示对话框。不过,想想还是先摸摸这些个组件及各种连接的内涵,搞不明白总觉得的堵的很。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值