所谓的三层数据库,就是在服务器端放置一个中间层,本实例使用Remote Data Module(远程数据模块)创建,3层的好处就是把一些功能放在中间层,这样当某些功能发生转变时,既不用修改数据库,也不用修改客户端,只要修改一下中间层就可以了啊。
1. 首先让我们来编译服务器端,打开Delphi7,新建一个标准工程,创建一个新窗体。 选择File菜单 -> New -> Other -> Multitier -> 选择Remote Data Module(远程数据模块) ->点"OK",进入到 " Remove Data Module Wizard " 向导对话框,在其Coclass Name 输入server.,其他选项选择默认值,点击确定按钮即可。 这样会产生一个窗体,在这个窗体里,我们可以添加数据库控件和数据库连接。这里我们介绍一下ADO控件,ADO控件是目前数据库开发中应用的主要空间之一,Delphi在对其提供了良好的支持,使用ADO连接数据库相当简单,我们先在窗体里加入一个ADOTable控件,设置其属性contectionstring,在弹出的对话框点击"Build"按钮后,弹出"数据库连接属性"对话框,设置其连接一个数据库,点击"测试连接"可测试连接是否成功。
2. 再加入一个DataSetProvider控件,设置其属性DataSet指向ADOTable。这就完成了服务器端的程序设计,保存、编译。
3. 接下来让我们来编译客户端,打开Delphi7,新建一个标准工程,创建一个新窗体。 在新窗体上,添加一个TDCOMConnrction控件(在Datasnap页),其属性设置: ComputerName:服务器名(点击自动给出网上邻居) ServerName:应用程序服务器注册名(Project1.server),ServerName 选择后,ServerGUID会自动输入GUID值。 Connected=true 为激活,在调试的时候,如果是在Windows xp本机的情况,可以先运行Project1.exe,然后就可以在ServerName中找到project1. server 了,然后设置Connected=true 激活。
4. 再添加一个TClientDataSet控件(在Data Access页),其属性设置: RemoteServer:DCOMConnrction1 ProviderName: DataSetProvider1(服务器端将被激活) Active:true (激活后将能正常连接) 添加TDataSource控件,设置其属性DataSet指向ClientDataSet1。 添加TDBGrid控件,设置其属性DataSource指向DataSource1。 这就完成了客户端的程序设计,保存、编译。这样一个三层数据库构架就基本完成了,我们可以在客户端添加数据显示控件,设置同普通数据库连接设置相同。
以上所需控件:
服务器端: DataSetProvider(Data Access), ADotable
客户端:TDcomConnection(DataSnap), TClientDataSet(Data Access) , DataSource, DBGrid.