Delphi 搭配Oracle开发数据库应用

2013-12-29 00:00:00李卫红邓杰海
电脑知识与技术 2013年4期

摘要:该文介绍了Delphi搭配Oracle进行数据库应用开发时,通过Delphi提供的BDE以及Oracle提供的Net Manager工具进行有关数据库连接设置。通过设置Tdatabase及Tsession控件属性,然后使用TTable、Tquery和TstoredProc等BDE控件,进行Oracle数据库的有关操作。

关键词:Delphi;Oracle;数据库;存储过程;SQL语句

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)04-0669-02

由Borland公司推出的Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编译器、最为领先的数据库技术。

ORACLE 数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。

1 配置Oracle监听和网络服务名

建立了Oracle数据库后,必须合理地配置监听程序和网络服务名,客户应用才能访问数据库。服务器端必须配置监听程序,而网络服务名在客户端跟服务器端都可以配置。

服务器端的监听程序用于接收客户端的连接请求。建立Oracle数据库后,为了客户应用能访问特定数据库,必须要在监听程序中追加该数据库。一个监听程序可以监听多个Oracle数据库,多个监听程序也可以监听同一个数据库。但是监听程序只能用于同一台服务器上的Oracle数据库。安装了Oracle时,会自动建立默认的监听程序LISTENER.,监听程序使用的默认端口为1521。保存了监听程序配置之后,必须要重新启动监听程序才能生效。windows中可以在“服务”中重新启动。例如:假如在10.150.27.45上装了ORACLE服务器,端口是1521,为了让其他客户端应用(不管是本地的还是其他的)可以访问我的名为TESTDB的数据库,首先得在服务器上配置监听器:进入Net Manager 新建一个端口,如命名为LISTENER,配置主机名:如10.150.27.45和端口1521,配置全局数据库名:如TESTDB,然后保存。

客户端需要配置网络服务名,才能访问Oracle数据库, 一般使用数据库名作为服务名。注意: 网络协议要与监听程序的一致(如TCP/IP)例如:假如在10.150.27.46上装了ORACLE客户端,进入NET MANAGER,新建一服务命名,如:TEST,然后配置你要连接的DB服务器名字和端口好,如:10.150.27.45, 1521,配置服务名必须跟监听端口的全局数据库名一样:如TESTDB,然后可以通过输入用户名和密码测试连接成不成功了。

2 设置BDE连接

Delphi数据库应用的最大奥秘在于它的独特的数据库引擎BDE(Borland Database Engine),它使我们的程序编写更为方便,移植起来也十方便,可适应从客户/服务器模式到分布式网络计算,如果再充分利用Windows的多线程、COM、CORBA、MTS等机制,将会开发出更为美妙的东西来。Delphi主要是通过数据库引擎BDE来处理数据的。BDE实际上是由几个DLL模块组成的,它们分别负责处理一些数据库的相关工作。所有数据库存取使用的例程,均需要通过BDE来处理。BDE是Delphi数据库功能的枢纽部分,是连接应用程序和数据库的桥梁。

Delphi要访问Oracle数据库时,需要先在BDE中进行相关的设置。设置BDE步骤如下:运行BDE工具,对右边的Database根节点点击右键,在弹出的New Database Alias对话框的下拉框选择Oracle驱动程序。在Database根节点下面添加了一个节点,节点名称可以修改,然后修改右边的SERVER NAME属性,此值与Oracle的Net Manager工具设置的网络服务名一致。修改SQLQRYMODE选项值,数据库在本机,选择Local,不在本机,选择Server。还需要修改USER NAME的值,输入Oracle的用户账户。

3 BDE数据库组件使用说明

3.1 Tdatabase组件

Database组件用于事务处理控制、安全性以及连接控制。它通常只用于连接客户机/服务器应用程序中的远程数据库,或避免在多个窗体中连接同一个数据库。Database组件还用于设置只在程序内使用的本地别名。一旦该本地别名被设置为一个给定的路径,应用程序的Table和Query组件就可以引用本地数据库别名。这要比在程序的每个DataSet组件中复制编码路径的方法好得多。

3.2 TSession组件

Session组件提供了对应用程序数据库连接的全局控制,包括一个已有数据库和别名的列表以及一个定制数据库注册的事件。

3.3 Ttable组件

在Delphi中,指定数据访问最简单的方法是使用Table组件。Table对象只引用数据库表格。当使用Table组件时,需要指明要在它的DatabaseName属性中使用的数据库名称。可以输入别名或含有数据表格文件的目录路径。Object Inspector列出了所有可用的名称,这要根据在BDE中安装的别名来定。

还需要在TableName属性中提供相应的值。Object Inspector列出了当前的数据库(或目录)可使用的数据表格,所以通常应该首先选择DatabaseName属性,接着选择TableName属性。

3.4 Tquery组件

Delphi中第二个数据集合组件是Query组件。查询一般要比数据表格复杂,因为它需要SQL语言命令。然而,使用SQL定制查询比定制数据表格容易(当然,至少需要知道SQL的基本元素)。Query组件和Table组件一样有DatabaseName属性,但没有TableName属性。数据表格是在SQL语句中定义的,存储在SQL属性中。

3.5 TstoredProc组件

第三个数据集合组件是StoredProc,它引用了SQL服务器数据库的存储过程。可以运行这些过程并在数据库表格窗体中得到结果。StoredProc只能与SQL服务器一起使用。

4 结束语

通过本文介绍的方法连接Oracle数据库,方法简单、操作方便,但在部署软件的时候就很不方便,因为在每台运行软件的计算机上都需要设置特定名字的BDE别名。

参考文献:

[1] Marco Cantu.Delphi2005从入门到精通[M].北京:电子工业出版社,2006.

[2] 路遥,宋鑫.Oracle基础与提高[M].北京:电子工业出版社,2003.

[3] 陆正武,徐君明.Delphi7基础编程[M].北京:电子工业出版社,2003.