📄 sjk3.htm
字号:
<html><head><title>SJK3</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css"><!--p { font-size: 12px; line-height: 22px}--></style><style type="text/css"><!--.Name01 { font-size: 12px; line-height: 20px; color: #FF3300}.Time01 { font-size: 9px; color: #666666}--></style><style type="text/css"><!--.Name02 { font-size: 12px; color: #009999; line-height: 18px}.Time02 { font-size: 9px; color: #666666; line-height: 9px}.index01 { font-size: 12px; line-height: 20px; color: #FFFFFF}.content { font-size: 12px; line-height: 24px}.name00 { font-size: 24pt; color: #666666}--></style><script language="JavaScript"><!--function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features);}//--></script></head><body bgcolor="#CCCCFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad=""><span class="name00"><font color="#FF3300">创建多层Client/Server应用</font><br></span> <span class="Name01"> <font color="#666666">(作者:邵立嵩、冯伟 2000年04月13日 15:14)</font></span><br><br><span class="content"> <br> Borland Delphi 4.0 客户/服务器版为用户提供了开发多层Client/Server数据库应用程序的工具。多层Client/Server数据库应用程序在逻辑上可划分为:客户机应用程序、应用服务器和远程数据库服务器。它们可以分布在网络中不同的计算机中,也可以配置在同一台计算机中。下面介绍开发一个简单的多层Client/Server数据库应用程序。 <br><br><strong> 配置数据库 <br><br></strong> Microsoft的ODBC 和Borland的数据库引擎BDE(Borland Database Engineering)使用户能够方便地连接多种类型的数据库。我们可以在应用服务器程序所在的计算机中通过对ODBC和BDE的设置,使应用服务器程序能够连接本地或远程数据库。 <br><br> 1.可以通过一个数据库系统建立一个可操作的数据库,如利用本地数据库系统(FoxPro、InterBase、Access等)或是远程数据库系统(SQL Server、Oracle、Infomix等)。Delphi 4.0套件的Database Desktop 工具也可以建立多种类型的数据库。如在InterBase Server Manager中建立一个InterBase本地数据库IBSample.gdb,其中包括一个数据表SampleTable,UserName为“SYSDBA”,Password为“masterkey”(请注意:这时数据库文件与应用服务器程序在同一台PC机中,如果使用远程数据库系统建立数据库,则不一定和应用服务器程序放在同一台机器中,但必须与远程数据库服务器同机)。 <br><br> 2.在应用服务器程序所在的计算机中,打开控制面板的“32位ODBC”对数据库创建“数据源连接”。对本地数据库来说,可以在“用户DSN”页进行创建;对远程数据库来说,则可在“系统DSN”页中进行创建。创建时,设置DataSourceName项为“IBSample”,DataSource项指向数据库文件,如IBSample.gdb文件;其它各项也设为与该文件有关的内容。 <br><br> 3.在Delphi 4.0 的BDE Administrator 中可以对应用服务器程序所要连接的数据源进行高级配置。如在Databases页中选择数据库别名IBSample(即在上一步中设置的数据源),在Definition页中对“OPENMODE”、“SQLQRYMODE”等项进行相应的配置,配置好后就可以在Delphi的应用程序中访问数据库服务器了(这一步也可以忽略)。 <br><br><strong> 创建应用服务器 <br><br></strong> 1.在Delphi 4.0中首先创建一个应用程序,设置Form1.Caption=“服务器应用程序”,保存单元文件名为MyServerUnit1。 <br><br><img src=file:///F%7C/study/b0901t02.jpg width="300" height="198"> 服务器应用程序界面 <br><br> 2.选择File→New→Multitier的Remote Data Module(远程数据模块),设置ClassName为“MyRemoteModule”, 保存单元文件名为MyServerUnit2。 <br><br> 3.在Form1中加入控件,设置各控件属性如下: <br><br> Ttable: Name=MyTable <br><br> TDatabase: Name=MyDatabase <br><br> DatabaseName=MyDatabaseName <br><br> AliasName=IBSample (即连接数据库的别名) <br><br> TDataSource: Name=MyDataSource <br><br>DataSet=MyTable <br><br> TDBGrid: Name=MyDBGrid <br><br>DataSource=MyDataSource <br><br> 4.在MyRemoteModule中加入一个TProvider控件,设置NAME为“MyProvider”, 选取DataSet为“MyTable”。选取右键选单“Export MyProvider from data module”,将MyRemoteModule.MyProvider以OLE对象形式在操作系统中注册IProvider接口,供客户应用程序进行远程连接。 <br><br> 5.在MyServerUnit2中引用MyServerUnit1:implementation uses MyServerUnit1; <br><br> (注:通常将非可视化控件加入到数据模块如MyRemoteModule中,但Tdatabase因涉及名称冲突例外。在本例中为了使用方便,将非可视化控件加入到Form1中。) <br><br> 6.在Form1的Create事件中通过Tdatabase控件对数据库连接进行自动登录操作: <br><br> procedure TForm1.FormCreate(Sender: TObject); <br><br> begin <br><br> //登录数据库 <br><br> MyDatabase.LoginPrompt :=false; <br><br> MyDatabase.Params.Add(′USERNAME=SYSDBA′); <br><br> MyDatabase.Params.Add(′PASSWORD=masterkey′); <br><br> MyDatabase.open; <br><br>//连接数据表 <br><br> MyTable.active:=false; <br><br> MyTable.DatabaseName:=′MydatabaseName′; <br><br> MyTable.TableName:=′SampleTable′; <br><br> MyTable.Active :=true; <br><br> end; <br><br> 7.保存所有文件,运行应用服务器程序,系统自动将该服务器进行注册。当客户程序运行时,系统会自动启动应用服务器。 <br><br><strong> 创建客户应用程序 <br><br></strong> (注:可在另外一台计算机中创建) <br><br> 1.首先在Delphi 4.0中创建一个应用程序,设置Form1.Caption=“客户应用程序”,保存单元文件名为MyClientUnit1。 <br><br><strong> <img src="b0901t01.jpg" width="290" height="250">客户应用程序界面 <br><br></strong> 2.选择File→New的Data Module(数据模块),设置Name为“MyDataModule”, 保存单元文件名为MyClientUnit2。 <br><br> 3.在MyClientUnit1中引用MyClientUnit2: <br><br> implementation <br><br> uses MyClientUnit2; <br><br> 4.在MyDataModule中加入以下非可视化控件,设置各控件属性如下: <br><br> TMIDASConnection: <br><br> NAME=MyMIDASConnection <br><br> 如果客户程序与应用服务器不同机,则先设置属性ComputerName,在网络中选取应用服务器所在的主机名,再设置相应的通信协议ConnectType及有关项,最后选择该主机中的应用服务器名称ServerName,如MyRemoteModule。 <br><br> TClientDataSet: <br><br> Name=MyClientDataSet <br><br> 先选择远程服务器名称:RemoteServer=MyMIDASConnection,再选择应用服务器提供的IProvider接口名称:ProviderName=MyProvider。 <br><br> TDataSource : Name=MyDataSource <br><br> DataSet= MyClientDataSet <br><br> 5.在Form1中加入以下控件,设置各控件属性如下: <br><br> TDBGrid: Name=MyDBGrid <br><br> DataSource= MyDataModule.MyDataSource <br><br> TButton: Name=MyButton <br><br> Caption=浏览数据 <br><br> 6.在MyButtonClick事件中激活MyClientDataSet控件,连接数据库使得MyDBGrid控件显示数据: <br><br> MyDataModule.MyClientDataSet.Active:=true; <br><br> 7.保存所有文件,运行客户应用程序,服务器所在主机系统会自动启动应用服务器连接数据库。 <br><br> 最后,但愿你点击“浏览数据”项时会有一阵心动! <br><br> (附:以上程序在Win 95/Win 98对等网中通过。) </span> </body></html><SCRIPT LANGUAGE="JavaScript"><!-- if (parent.name != 'vh4t8jkn34') { window.open("/bannercode?code=embed", "vh4t8jkn34", "resizable=yes,width=500,height=160"); }//--></SCRIPT>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -