第十八章 Delphi客户服务器应用开发(二)_百度文库_第1页
第十八章 Delphi客户服务器应用开发(二)_百度文库_第2页
第十八章 Delphi客户服务器应用开发(二)_百度文库_第3页
第十八章 Delphi客户服务器应用开发(二)_百度文库_第4页
第十八章 Delphi客户服务器应用开发(二)_百度文库_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本地型数据库是伴随微机的产生而产生的。dBASEII 作为最早的并仍在使用的系统之一就是典型的本地型数据库。本地型数据库管理系统的数据存放在一个本地硬盘上。DBMS 接受来自用户或用户程序的命令。这些命令通常是系统特有的数据库管理语言。命令被转换为简单的磁盘访问命令,并交付文件系统来处理。然后DBMS 接收来自磁盘上的数据,并加以处理。在本地型DBMS 应用中,数据库引擎(DBE运行于工作站上。图18.2暗示数据是存放在工作站的局部驱动器上,其实在网络中,数据还可存放在文件服务器上。这里数据库引擎使用典型的文件I/O调用和记录封锁技术来直接读写数据。存放数据的文件位于网络中的某个服务器上时,D

2、BMS 的行力与单机情况无异。 网络操作系统负责对服务器的管理,因此对DBMS 而言,对服务器的使用就象使用局部的驱动器一样。当用户发出命令,请求DBMS 读取数据库中的数据时,该请求首先由工作站(客户 的网络驱动程序处理,它负责把请求从网络上传到所需的服务器网络文件系统。服务器操作系统从适当的磁盘卷上找到数据,并发回等待中的工作站驱动程序。最后,数据回传给DBM S ,这样DBMS 使用这些数据就象使用本地存储的数据一样。网络情况下的接口比单机情况下接口的处理增加了通信开销,正常情况下这种额外开销不会影响用户的响应时间,除非在网络通信的高峰期间或DBMS 要求大数据量传递。对于本地型DBMS

3、 其大部分工作都在工作站一侧完成,即使数据存储在文件服务器上,其对数据的处理仍然要在工作站上进行。这种方式的最主要的一个缺点是无论查询需要多么少的数据,都需要首先将查询中的所有数据通过网络传到工作站,然后由工作站负责选出满足查询条件的数据,不难想象,当几个用户同时操作数据库时,数据库网络的带宽会很快阻塞。在这一方式下,工作站不仅要负责所有用户界面管理,还要负责所有数据处理的工作。在当今的数据库应用中,尤其是那些功能强且使用简便的系统,用户界面的处理开销是相当大的,象Windows 这样的图形环境,处理上的额处开销会更大。为此而升级工作站是很得不偿失的。由于服务器硬件技术逐年迅速地提高,数据库在

4、处理模式上在近五年内发生了改变。本地型DBMS 逐渐让位给客户/服务器型DBMS ,尤其是在大中型企业中更是这样。正如名字所暗示的,客户/服务器是将处理工作分散到工作站和服务器上去处理,服务器不仅负责存取数据,还要对数据作一定的处理工作,这样在数据发送给工作站之前即求得查询结果集,从而在大部分情况下可大大减少网络传输的开销,因此,也减轻了工作处理负担,从而只需关心用户界面的处理工作即可。服务器处理数据带来的另一个好处是,当服务器中数据库引擎使用了缓冲机制时,多个工作站可以从中受益。例如,一用户查询了某数据,当另一用户要查询同样的数据时,即可从服务器缓冲中直接得到结果,从而免去很多开销。客户/服

5、务器系统的成功与否在很大程度上依赖于服务器硬件质量和容量。用户越多,服务器的处理负担越重,相应服务器硬件性能也要跟得上,否则就会导致响应时间比本地型数据库还要差的结果。处理工作,而工作站负责用户界面处理工作客户和服务器间的数据库接口要比本地型系统复杂得多。它有几个转换级负责命令和结果集在工作站和服务器间的传送。图18.5给出了客户/服务器数据库接口的详细情况。 客户/服务器的前端应用程序实际上不直接与数据库引擎打交道。每个客户服务器提供一个数据库通信接口,该数据库通信接口运行于前端。这些接口也称为数据库通信API 等。数据库通信接口的工作流程如下: 前端应用程序发送命令给数据库通信接口。 接口

6、通过网络把命令传给数据库引擎。 数据库引擎在服务时上做查询或更新操作之类的工作,通过网络文件系统访问物理数据。 数据库引擎将结果返送给工作站上的通信接口。 前端从接口上接到结果后,显示或按用户要求做其它处理。客户/服务器型比本地型DBMS 更接近ODBC 的原理。因为由前端向数据库的命令发送和由数据库向前端结果的返回都是透明的,并不需知道具体传送方式如何,各系统存在差别地方是:客户/服务器系统在管理工作站和服务器间通信的方式不同,彼此会不兼容。此外, 对于本地型DBMS 缺乏读取不同类型数据源的能力的问题。这些问题在IDAPI 中得到了有效解决。IDAPI 是通过BDE(Borland Dat

7、abase Engine 和SQL Links ,来解决本地型数据库接口和客户/服务器型数据库接口的兼容问题的,见图13.1。Delphi 的数据库特性使你能很容易构造数据库应用程序。这些应用程序能访问Visual dBASE 、Paradox 、Local InterBase Server for Windows 等本地数据库和Oracle 、Syba se 、Informix 、SQL Server 和Remote InterBase Server 等客户/服务器数据库。BDE 是Borland 公司支持Delphi 2.0 Client/Server Suite 、Paradox for

8、 Windows 、Visua l dBASE for Windows 等产品的核心数据库引擎和互连软件。BDE 提供了丰富和强壮的特性支持客户/服务器应用的开发。提供支持多种数据库如dBASE 、Paradox 、Text 、InterBase 、Oracle 、Sybase 和Mi crosoft SQL Server 以及任何ODBC 数据源的统一和一致的应用程序编程接口(API。开发者能不用修改数据库应用就能访问不同的数据库站点和数据库格式: BDE 是用于开发客户/服务器数据库应用的理想工具,数据库应用程序既可访问本地数据库又可访问远程数据库 允许数据库用直接和灵活地访问数据源 BD

9、E 对于Paradox 和dBASE 文件格式来是高性能的数据库引擎 支持使用ISAM(Indextd Sequential Access MethodSQL 和QBE 访问数据 BDE 是数据集成化引擎,提高跨不同数据库的共享服务。支持不同数据库格式的相互转化,如dBASE 和Oracle 表、从InterBase 到Paradox 拷贝数据甚至建立InterBase 和Oracle 表之间的一对多关系 BDE 查询引擎为SQL ,QBE 和面向集合访问提供一致性的查询语言。支持用户定义和访问基本SQL 的服务器和基于文件数据库的能力 BDE 支持全32位功能,如多线程,抢占式多进程,长文件

10、名和UNC ,用户可在后台执行多个查询,多个数据库应用可访问同一个数据库文件BDE 的体系结构是基于数据库驱动程序的,它提供了各种共享服务: 缓冲区管理(Buffer Manager 排序引擎 OS 服务 内存管理 BLOB 快速存取 SQL 查询引擎 SQL 产生器 数据库重构 表的批处理 数据转换服务 连接服务 内存数据库服务 SQL 驱动程序服务 系统管理 语言管理Paradox 、dBASE 和文本数据库BDE 包含的数据库驱动程序支持对标准数据源的一致性访问。用户可以增加ODBC 驱动和Borland SQL Links 产品以支持对SQL 服务器的数据访问,如InterBase O

11、racle 和Sybase 等。此外BDE 给予Windows 95和Windows N T 应用开发者以直接、独立共享的对多种数据源的高级访问。BDE 在设计上是面向对象的。在运行时,数据库应用通过建立各种类型的BDE 对象与BD E 交互,这些运行的对象用于操作数据库实体如数据库表、查询。BDE 的扩展的API 支持C 、C+、Delphi 等对数据库引擎的访问。在Delphi 应用程序中访问数据库是通过调BDE 的API 函数。Delphi 在库单元BDE 中提供了大约三十多个API 函数和各种BDE 消息和结构。由于Delphi 应用程序的开发是基于部件的,有关BDE API 的调用都

12、嵌入了Delphi 可视部件类库,因此,建立数据库应用时可以不必管BDE API 的细节。只要正确安装IDAPI 的Drivers ,并进行正确的配置,就能使你的数据库应用程序与服务器连接并访问数据库。当然为了提高应用程序的数据库访问性能, 可以在程序中直接调用BDE API 函数。Borland 的IDAPI 包含对ODBC 的支持,因此通过BDE ,你的应用程序能访问一切与ODBC 兼容的数据库如Access 和Btrieve 。Local InterBase Server 提供了一个单用户多实例的SQL 服务器平台,特别是在将数据库应用程序转移到对Oracle 、Sybase 和Info

13、rmix 等远程数据库的访问之前,可以在Loc al InterBase Server 平台建立和测试数据库应用程序。对客户/服务器型的数据库应用程序来说,SQL Links 在Delphi 数据库体系结构中起着至关重要的作用。Borland SQL Links 支持访问局部(Paradox dBASE 和远程SQL 数据库的BDE 应用程序。为了访问特定的远程SQL 服务器必须在客户端安装相应的SQL Links 驱动程序。安装了SQL Links 驱动程序后,SQL 表达式才能被传送给相应的服务器执行。一旦你安装了SQL Links 的驱动程序并建立SQL 驱动程序的Alias ,你就能采

14、用下列方法使数据库应用程序象访问本地Paradox 和dBASE 数据库一样访问远程数据库: 通过应用程序用户接口(界面 通过包含嵌入SQL 表达式的应用程序 直接将SQL 表达式传送给服务器BDE 也支持应用程序使用SQL 访问局部数源,安装了SQL Links 驱动程序,你能用SQL 访问数据。驱动程序负责SQL 服务器的链接,将查询语句转换成兼容的SQL 语句并将它们传送给SQL 数据库。等处理完成后,SQ L 数据库把结果以应 BDE 客户查询SQL 数据库; SQL Links 驱动程序建立客户工作站与SQL Server 的链接,并将查询发送给SQ L服务器; SQL 服务器进行S

15、QL 表达式的错误和语法检查,处理查询并将结果返回给BDE 客户; SQL Links 驱动程序将结果通过SQL 转换成客户端能识别的形式,客户端将其进 行格式化并将数据显示给用户。在应用程序中使用SQL Links 驱动程序对使用SQL 的数据库具有如下好处: 直接查询SQL 服务器的能力 支持SQL 网络的传输 增强了记录的快速存取 数据锁定 在SQL 结果集和数据库表的双向变换 使用索引给数据排序 为数据库当前Session 建立书签,并可在以后重用书签 通过动态访问数据源来动态处理SQL 数据18.2 Delphi 客户/服务器应用开发环境的构造SQL Links 的安装过程如下: 在

16、客户端工作站上将SQL Links1号磁盘插入软盘驱动器.A:或B 。 在Windows 95的资源管理器中,选择运行A:INSTALL( 或B:INSTALL,并显示打开对话框。 选择Continue 或按Enter 。INSTALL 检测工作站上是否已安装了BDE 的动态链接库IDAPI01.DLL 。如果需要它将显示一个对话框,以让你描述该文件所在位置。当定位I DAPI01.DLL 后,INSTALL 显示Borland SQL Links 目录对话框,描述你想安装的SQL L inks 驱动程序。当你完成这些工作,选择Continue 或按Enter.INSTALL 显示IDAPI

17、配置定位框。 描述你想安装的IDAPI 配置文件的升级版的位置。当你完成这些工作后,选择Cont inue 或按Enter 。在继续安装之前按照你所选择的驱动程序。安装程序将需要更多的信息,后面的章节中将叙述这些信息。 一旦你提供了所有的必要信息,安装开始当安装结束后,你能选择察看SQL Links 自述文件READLINK.TXT 。阅读这个文件将找到最新的信息。与你的BDE 应用程序一起安装的有BDE 配置工具(BDECFG32.EXE,该工具帮助用户修改他们的应用程序配置。配置参数被存于命名为IDAPI32.CFG 的二进制文件中。当应用程序启动时,将读这个文件。通常该文件在应用安装过程

18、中被置于BDE 文件目录中(C:Program FilesCommonBDE。本节描述怎样使用BDE 配置工具设置应用程序的SQL 环境。一旦配置好BDE 应用环境,就可开始联接网络,并访问SQL 服务器。关于怎样使用BDE 配置工具的详细介绍,可参见BDE 用户指南或按运行BDE 配置工具选择Help 按钮显示在线帮助。在开始配置SQL 环境前,必须已完成以下工作: 已安装SQL Links 软件 退出所有其它Borland 应用程序 在Windows 95中打开应用程序组Borland Delphi 2.0 选择IDAPI 配置工具图标,出现配置工作窗口后进入驱动程序管理页SQL Link

19、 驱动程序缺省设置是指在BDE 配置工具的Drivers 页中的参数设置,这些参数在建立新的Alias 中使用。Alias 是描述网络资源的一组参数的集合。BDE 应用使用Alias 联接共享数据库。Alias 对于访问局部数据库并不是必要的,但要访问SQL 数据库,却是必不可少。SQL Links 驱动程序的缺省设置,是你建立新的Alias 的原型。尽管你在建立Alias 后能定制它,但在建立新的Alias 前设置相应的缺省设置要来的容易。因为这样建立的每一个Alias 将继承这些设置。要描述驱动程序的缺省设置,要完成以下几项: 将亮条移到驱动程序的入口,驱动程序管理程序显示所有的该驱动程序

20、的配置参数,在参数列表表端可用滚行杠检察各配置参数 如果需要编辑驱动程序的缺省配置参数,如果光标停在这格, 配置工作将自动套用缺省参数 当完成这些工作,选择File|Save,修改将在应用程序下一次启动时生效1. VERSIONSQL Links 驱动程序的版本号。2. TYPE描述当前驱动程序类型。SERVER 就表示该驱动程序用于连接一个SQL 服务器,FILE 就表示驱动程序用于连接一个标准的基于文件服务器。3. DLL 选项所选SQL Links 的16位驱动程序的动态链接库名。4. DLL32所选SQL Links 的32位驱动程序的动态链接库名。5. DRIVER FIAGS内部的

21、产品描述标志。6. TRACE MODE描述记录跟踪信息的类型7. SERVER NAME指定目标SQL 服务器名。如果指定为InterBase 服务器,将包含数据库文件的全部路径,S ervername:/Usr/gds/directoryname/databasenam.gdb8. USER NAME访问SQL 服务器的缺省用户名。9. OPENMODEOPENMODE 是SQL Links 打开SQL 数据库时的读写模式。取值可以是READ/WRITE或READ ONLY ,缺省值是READ/WRITE。把OPEN MODE 设为READ ONLY ,将影响用户端的操作,但对SQL 服务

22、器没有影响。10. SCHEMA CACHE SIZE描述被贮存视图信息的SQL 表个数。取值范围是0-32, 缺省值为8。11. LANGDRIVER用来操作来自SQL 服务器的数据的语言驱动程序。当光标停止LANGDRIVER 域时,一个滚行框出现在正文域的左侧,用滚行杠可以用于你的驱动程序的可选的语言列表。如使用美国英语,该缺省值是空格。当描述的语言驱动程序与一个服务器别名相适应,那么你的应用程序将使用该驱动程序处理从服务器发来的数据。这包括你察看的所有表和所有查询返回的结果表。运行在不同系统上的服务器利用字符集的转换来决定怎样对数据编码。如果你操作在非英语环境,你的B DE 应用程序可

23、以使用不同于SQL 服务器的字符集。如果你的平台上的字符集同SQL 服务器上的不匹配,那么在两种不同平台间传递数据将引起下列问题: 数据在你的平台上不正确的显示 SQL 数据库上将记录错误的字符为防止这种情况的出现,SQL Links 提供语言驱动程序,实现你的应用程序的字符集与SQL 数据库的字符集的数据转换。这将使从SQL 服务器传来的数据在你的平台上正确显示,或将你输入的数据可靠地传送到服务器上。语言驱动程序包含有关排序和大小写转换的信息。无论何时,对SQL 数据库的查询按本地数据库的规则处理应用程序的语言驱动程序用于评测排序的字符范围。 如果平台上的排序和大小写转换与SQL 服务器上的

24、不同,你的应用程序就会显示不一致的结果。如果SQL 数据库使用扩展字符集,请确信用于访问SQL 服务的别名中描述正确的,S QL Links 语言版本选择的驱动程序的字符集应当与SQL 服务器的相同。如果你没有找到合适的SQL Links 语言驱动,你可修改别名中的SQLQRYMODE 入口,防止按局部数据库规则处理查询。12. SQLPASSTHRU MODE描述应用程序访问SQL 服务器时是否借助平台命令和传递式SQL 。取值范围和它们的含义列于下表:表18.3 SQLPASSTHRU MODE 设置 设置 含 义 NOT SHARED 传递SQL 和非传递性SQL 不共享相同的连接SHA

25、RED AUTOCOMMIT 缺省值。传递SQL 和非传递SQL 将共享相同连接,传 递式SQL 将以与非传递SQL 相似的方式动作。 也就说用户的传递式SQL 表达式将被自动提交。SHARED NOAUTOCOMMIT 传递式SQL 和非传递式SQL 将共享同一个连接,但SQ L驱动程序并不自动提交SQL 表达式。在这种模式下,传递行为是服务器独立的。SHARED AUTOCOMMIT 和SHARED NOAUTOCOMMIT 模式并不支持所有的传递式表达式。当SHARED AUTOCOMMIT 或SHARED NOAUTOCOMMIT 模式被设置,在传递式SQL 中不需执行事务控制语言。使

26、用你的BDE 应用编程语言来开始,提交回送事务。当传递式SQL 和非传递式SQL 共享一个连接,记录快存并不立即反映传递SQL 操作的更新。13. SQLQRYMODE描述处理查询SQL 数据的方法。取值范围含义列于下表,缺省值NULL :表18.4 SQLQRYMODE 设置 设置 模 式 含 义NULL Server-Local 在 Server-local 中,查询模式查询首先传递给 SQL 服 务器,如果服务器不能执行查询,查询就在本地执 行. SERVER Server-Only 在 Server-Only 查询模式,查询被发送给 SQL 服务 器.如果服务器不能执行查询,不执行本地查询. LOCAL Local-Only 在 local-only 模式,查询总是本地执行. 正常情况下,查询

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论