Delphi的三层开发初学经验

近日闲来无事,看了写有关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,其他选项选择默认值点击确定按钮即可。   这样会产生一个窗体,在这个窗体里,我们可以添加BDE页面下的数据库控件和数据库连接组件。   先编辑属性连接数据库,最后加入Data Access页面下的一个DataSetProvider控件,设置其属性DataSet指向Query1。这就完成了服务器端的程序设计,保存、编译运行。 同时服务器端需额外运行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 激活。   再添加一个TClientDataSet控件(在Data Access页),其属性设置:  RemoteServer:DCOMConnrction1  ProviderName: DataSetProvider1(该属性是服务器端设定的那个DataSetProvider1)  Active:true (激活后将能正常连接)  添加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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值