zoukankan      html  css  js  c++  java
  • delphi xe2学习笔记(2)

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

    继续白皮书。

    这下先专注提供数据库服务的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,连上了。

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

  • 相关阅读:
    MOSS发生“未能转换部分或所有标识引用”错误的处理
    Excel嵌入网页(二) 转载
    GridView的PagerTemplate分页
    深入探讨:如何理解.Net的三层架构(转)
    IIS报Service Unavailable错的解决方案
    浅谈C#托管程序中的资源释放问题(转)
    C#程序节省内存
    网页中嵌入Excel控件(补充)
    解决ajax的status=0问题
    翻开我的博客之旅
  • 原文地址:https://www.cnblogs.com/jankerxp/p/7774042.html
Copyright © 2011-2022 走看看