加载中…
正文 字体大小:

Delphi的三层开发初学经验

(2008-12-03 15:21:29)
标签:

it

分类: 探讨

   近日闲来无事,看了写有关Delphi的书,发现有关三层的书都一样简单略过,网上搜索了一下也是零零碎碎,经过简单实验测试了一下内容。


   在数据库开发方面Delphi相对于其他众多开发工具其优势在于灵活快速,且十分稳定。本实例使用Remote Data Module(远程数据模块)创建。

服务端:
  首先让我们来编译服务器端,打开Delphi7,

    选择File菜单,New -> application,创建一个新窗体form1。

  选择File菜单 -> New -> Other -> Multitier -> 选择Remote Data Module(远程数据模块) ->点"OK",进入到 " Remove Data Module Wizard " 向导对话框,在其Coclass Name 输入server,其他选项选择默认值点击确定按钮即可。

    Delphi的三层开发初学经验

  这样会产生一个窗体,在这个窗体里,我们可以添加BDE页面下的数据库控件和数据库连接组件。

   Delphi的三层开发初学经验


  先编辑属性连接数据库,最后加入Data Access页面下的一个DataSetProvider控件,设置其属性DataSet指向Query1。这就完成了服务器端的程序设计,保存、编译运行。

Delphi的三层开发初学经验

   同时服务器端需额外运行Scktsrvr.exe程序,该程序在..\\Borland\Delphi6\Bin目录里


客户端:

   打开Delphi7,

    选择File菜单,New -> application,创建一个新窗体form1。

  在新窗体上,添加一个TDCOMConnection控件(在Datasnap页),其属性设置:

  ComputerName:服务器名如:center03或IP:127.0.0.1

  ServerName:应用程序服务器注册名(Project1.server),ServerName 选择后,ServerGUID会自动输入GUID值。

  Connected=true 为激活,

在调试的时候,如果是在Windows xp本机的情况,可以先运行Project1.exe,然后就可以在ServerName中找到project1. server 了,然后设置Connected=true 激活。

   Delphi的三层开发初学经验

  再添加一个TClientDataSet控件(在Data Access页),其属性设置:

  RemoteServer:DCOMConnrction1

  ProviderName: DataSetProvider1(该属性是服务器端设定的那个DataSetProvider1)

  Active:true (激活后将能正常连接)

Delphi的三层开发初学经验

  添加TDataSource控件,设置其属性DataSet指向ClientDataSet1。

  添加TDBGrid控件,设置其属性DataSource指向DataSource1。

  这就完成了客户端的程序设计,保存、编译。这样一个三层数据库构架就基本完成了,我们可以在客户端添加数据显示控件,设置同普通数据库连接设置相同。

  客户端运行。


Delphi三层结构对自定义远程接口的实现方法


   在三层中加入新的远程数据模块RemoteDataModule,会自动产生*.tlb的类型库,可自定义方法或函数
  1、必须先在服务器程序的typr lib中加入该函数,并定义好输入、输出变量,相应的修改会自动反应在RemoteDataModule和lib文件中;否则,在调用的时候会出现“methon "函数名" not supported by automation object”。究其原因,远程数据模块其实相当于我们自定义的一个类,只不过由系统自动生成罢了,在调用的时候
,如果将方法及其输入输出在类库中定义,则找不到该方法,就会出现无法调用的现象。
  2、在RemoteDataModule找到要定义的函数,在那里实现自己的逻辑。
  3、必须把datasetprovider的PoAllowCommandText:=true.否则,你在客户端无法使用lientdataset.commandtext属性了!这样你就可以在客户端调用socketconnection1.appserver..ExecSqls了,注意参数类型必须一致,字符串用widestring!!!!
  4、不能运行三层客户端的自定义解决:  regsvr32     midas.dll  ;  install     mdac

0

阅读 评论 收藏 转载 喜欢 打印举报
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有