送分!!!SQL SERVER 7.0中直接建库(100分)

  • 主题发起人 主题发起人 wanwqing
  • 开始时间 开始时间
库建好了!谢谢大家!我一定会按功给大家分我的这些分!
不知道大家有没有看过<中国计算机报>最近的一篇关于用DELPHI 实现C/S编程的
文章.我模仿文章在做C/S程序时,服务器部分没有问题,客户机部分无法连接.请各位
老兄指点!!!!
 
100这么用真合算,我不知道<中国计算机报>最近的一篇关于用DELPHI 实现C/S编程的
文章.

你贴出来,才好回答呀
 
最好买本SQL SERVER 7的书看看先,一句两句说不清楚,最多也是说些皮毛
 
下面是计算机报CCID上的文章,我不知哪部分有错,在我的机器上他所谓的服务器端
没问题,客户端不通.我认为"创建客户应用程序"的:第2点没有讲清楚,我不太懂?
好象新建Data Module(数据模块)细节比他讲的要更多.
第4点"设置相应的通信协议ConnectType及有关项",能详细给我解释一下吗?

------------------------------
声明:以下文章转自2000.4.13 CCID
------------------------------

当前页面位置: 主页: 技术天地: 编程指南: 技术文章

创建多层Client/Server应用
(作者:邵立嵩、冯伟 2000年04月13日 15:14)


  Borland Delphi 4.0 客户/服务器版为用户提供了开发多层Client/Server数据库应用程序的工具。多层Client/Server数据库应用程序在逻辑上可划分为:客户机应用程序、应用服务器和远程数据库服务器。它们可以分布在网络中不同的计算机中,也可以配置在同一台计算机中。下面介绍开发一个简单的多层Client/Server数据库应用程序。

  配置数据库

  Microsoft的ODBC 和Borland的数据库引擎BDE(Borland Database Engineering)使用户能够方便地连接多种类型的数据库。我们可以在应用服务器程序所在的计算机中通过对ODBC和BDE的设置,使应用服务器程序能够连接本地或远程数据库。

  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机中,如果使用远程数据库系统建立数据库,则不一定和应用服务器程序放在同一台机器中,但必须与远程数据库服务器同机)。

  2.在应用服务器程序所在的计算机中,打开控制面板的“32位ODBC”对数据库创建“数据源连接”。对本地数据库来说,可以在“用户DSN”页进行创建;对远程数据库来说,则可在“系统DSN”页中进行创建。创建时,设置DataSourceName项为“IBSample”,DataSource项指向数据库文件,如IBSample.gdb文件;其它各项也设为与该文件有关的内容。

  3.在Delphi 4.0 的BDE Administrator 中可以对应用服务器程序所要连接的数据源进行高级配置。如在Databases页中选择数据库别名IBSample(即在上一步中设置的数据源),在Definition页中对“OPENMODE”、“SQLQRYMODE”等项进行相应的配置,配置好后就可以在Delphi的应用程序中访问数据库服务器了(这一步也可以忽略)。

  创建应用服务器

  1.在Delphi 4.0中首先创建一个应用程序,设置Form1.Caption=“服务器应用程序”,保存单元文件名为MyServerUnit1。

  服务器应用程序界面

  2.选择File→New→Multitier的Remote Data Module(远程数据模块),设置ClassName为“MyRemoteModule”, 保存单元文件名为MyServerUnit2。

  3.在Form1中加入控件,设置各控件属性如下:

  Ttable:   Name=MyTable

  TDatabase: Name=MyDatabase

  DatabaseName=MyDatabaseName

  AliasName=IBSample (即连接数据库的别名)

  TDataSource: Name=MyDataSource

DataSet=MyTable

  TDBGrid: Name=MyDBGrid

DataSource=MyDataSource

  4.在MyRemoteModule中加入一个TProvider控件,设置NAME为“MyProvider”, 选取DataSet为“MyTable”。选取右键选单“Export MyProvider from data module”,将MyRemoteModule.MyProvider以OLE对象形式在操作系统中注册IProvider接口,供客户应用程序进行远程连接。

  5.在MyServerUnit2中引用MyServerUnit1:implementation uses MyServerUnit1;

  (注:通常将非可视化控件加入到数据模块如MyRemoteModule中,但Tdatabase因涉及名称冲突例外。在本例中为了使用方便,将非可视化控件加入到Form1中。)

  6.在Form1的Create事件中通过Tdatabase控件对数据库连接进行自动登录操作:

  procedure TForm1.FormCreate(Sender: TObject);

  begin

  //登录数据库

  MyDatabase.LoginPrompt :=false;

  MyDatabase.Params.Add(′USERNAME=SYSDBA′);

  MyDatabase.Params.Add(′PASSWORD=masterkey′);

  MyDatabase.open;

//连接数据表

  MyTable.active:=false;

  MyTable.DatabaseName:=′MydatabaseName′;

  MyTable.TableName:=′SampleTable′;

  MyTable.Active :=true;

  end;

  7.保存所有文件,运行应用服务器程序,系统自动将该服务器进行注册。当客户程序运行时,系统会自动启动应用服务器。

  创建客户应用程序

   (注:可在另外一台计算机中创建)

  1.首先在Delphi 4.0中创建一个应用程序,设置Form1.Caption=“客户应用程序”,保存单元文件名为MyClientUnit1。

  客户应用程序界面

  2.选择File→New的Data Module(数据模块),设置Name为“MyDataModule”, 保存单元文件名为MyClientUnit2。

  3.在MyClientUnit1中引用MyClientUnit2:

  implementation

  uses MyClientUnit2;

  4.在MyDataModule中加入以下非可视化控件,设置各控件属性如下:

  TMIDASConnection:

  NAME=MyMIDASConnection

  如果客户程序与应用服务器不同机,则先设置属性ComputerName,在网络中选取应用服务器所在的主机名,再设置相应的通信协议ConnectType及有关项,最后选择该主机中的应用服务器名称ServerName,如MyRemoteModule。

  TClientDataSet:

  Name=MyClientDataSet

  先选择远程服务器名称:RemoteServer=MyMIDASConnection,再选择应用服务器提供的IProvider接口名称:ProviderName=MyProvider。

  TDataSource : Name=MyDataSource

  DataSet= MyClientDataSet

  5.在Form1中加入以下控件,设置各控件属性如下:

  TDBGrid: Name=MyDBGrid

  DataSource= MyDataModule.MyDataSource

  TButton:  Name=MyButton

  Caption=浏览数据

  6.在MyButtonClick事件中激活MyClientDataSet控件,连接数据库使得MyDBGrid控件显示数据:

  MyDataModule.MyClientDataSet.Active:=true;

  7.保存所有文件,运行客户应用程序,服务器所在主机系统会自动启动应用服务器连接数据库。

  最后,但愿你点击“浏览数据”项时会有一阵心动!

  (附:以上程序在Win 95/Win 98对等网中通过。)

 
Nobody can do it???
 
来自:wanwqing 时间:00-4-6 14:31:04 ID:214028
谢谢!BIG_Z,我试试,如果行,我的分全给您!


 
后退
顶部