基于PowerBuilder8.0的动态配置ODBC实现研究

时间:2022-08-23 11:35:07

基于PowerBuilder8.0的动态配置ODBC实现研究

摘要:ODBC是开放式服务结构中数据库的重要组成部分。在阐述ODBC的概念和分析PowerBuilder8.0数据库接口的基础上,研究了PowerBuilder8.0中的动态配置ODBC的具体方法。

关键词:ODBC;开放式;数据库;标准API;动态配置

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)34-8083-02

PowerBuilder8.0是生产厂商PowerSoft公司研制的快速开发软件,能实现客户机/服务器结构体系的设计。它采用面向对象的开发技术,在可视化的开发环境中可以快速开发出适用于多种平台的数据库管理系统的数据库应用程序。采取ODBC数据源调用后台数据库是其中的一种方法。

在程序的过程中,要完成对ODBC数据源的动态注册,有以下几种方法:

1) 在安装程序制作软件如“InstallShield” 中设置。

2) 利用软件工具的注册(Registry)函数来实现。

3) 利用Windows的API函数来实现。

本文主要介绍如何利用PowerBuilder8.0的注册函数来实现动态注册ODBC数据源,以Adaptive SQL Anywhere 7.0数据库如何在注册表中动态配置ODBC信息。

1 ODBC基本概念

作为经常被采用的的数据库接口,ODBC接口是Microsoft公司制定的标准,它采用SQL作为标准连接的数据库。ODBC接口可以单个应用程序存取多个数据库管理系统,DBMS连接是用各数据库管理系统的驱动程序来实现。WOSA是Microsoft公司的标准的查询方法、标准化的错误代码集、连接和注册到DBMS的标准的方法以及标准化的数据类型。ODBC的基本原理是为用户提供简单、标准、透明的数据库的公共接口,为开发厂商提供标准去实现底层的驱动程序,同时驱动对用户来说是透明的,允许根据不同的DBMS采用不同的技术加以优化实现。ODBC出现以后,用户安装不同的DBMS驱动就可用同样的SQL语句中实现在不同DBMS上进行一样的操作。ODBC带来了数据库连接方式的变革,在传统方式中,开发人员要熟悉多个DBMS及其API,而一旦DBMS的客户端出现改动,就会往往要求用户端重新编建或者驱动重新安装,那么这就给开发和维护工作带来很大的困难。在ODBC方式中,无论底层网络环境如何,也无论采用何种的DBMS,用户都可以在程序中都使用同一个标准代码,也无需逐个了解每个DBMS和API的特点,程序不因底层的变化而重新编建或修改,这样就减轻了开发维护的工作量,缩短了开发周期。ODBC已为数据库供应商组织内部所认可,并且为众多应用软件厂商和其他开发商使用,随着SQL的推广和规范,用户和开发商会更加依赖于ODBC。

Microsoft Developer Studio为大多数标准的数据库格式提供了32位ODBC驱动器,标准数据格式有:SQLServer、Access、Paradox、dBase、Foxpro、Excel、Oracle、Sybase以及Microsoft Text。Microsoft的ODBC标准主要是应用在它的Windows操作平台上,因此只要运行于Windows操作平台上的应用程序都可以使用ODBC数据库接口。使用ODBC数据库接口,可以实现数据库和前端开发软件分离,实现三级模式的数据库管理,极大的方面了程序员的开发及数据库的安全性。

2 PowerBuiler8.0数据库接口

2.1 PowerBuilder8.0数据库接口

无论是本地数据库系统,还是远程数据库系统,数据库管理系统都会在本地向访问数据库的用户提供基于这些数据库管理系统的DLL,DLL中包含了数据库厂商开发给用户的各种API,从而允许用户完成数据库的定义和使用。API实际上就是通常所说的数据库驱动程序。对于本地的数据库管理系统,如果安装了这种数据库产口,数据库驱动程序就自动安装。对于不在本地的数据库管理系统,在远端的服务器安装了数据库产品后,还需要安装客户端程序,然后通过客户端程序访问数据库。在Windows操作系统下,这些接口是通过一个或多个动态链接库文件(DLL)来实现的,而这些DLL包含了操纵和定义这种类型的数据库的API。PowerBuilder8.0本身有一个Adaptive Server Anywhere7.0的数据库,DBODBC7.DLL是提供给用户的接口,用户可以在程序中进行调用。

PowerBuilder8.0提供了对各种数据库的强大支持,这种对数据库的支持体现在两个方面。

一方面,PowerBuilder8.0向数据库应用程序提供了各种数据库的接口,使得应用程序能够访问各种不同的异构的数据库管理系统。

另一方面,PowerBuilder8.0集成开发环境中向开发人员提供了操纵和定义各种数据库的工具。PowerBuilder8.0的数据库的接口有:

1) 实现了基于ODBC、JDBC和OLE DB标准通用接口。

2) 实现了基于各种大型的远程数据库管理系统专用接口。

在安装PowerBuilder8.0的过程中,PowerBuilder8.0的安装程序会让我们选择要安装哪些数据库接口。在PowerBuilder8.0中,这些接口也是作为DLL文件而存在于系统中的。PowerBuilder8.0通过它的数据库接口和具体的数据库管理系统进行交互。此数据库接口实际上就是一组API的集合。此API与各数据库管理系统提供的API相比,后者一般都比较庞大并且复杂,而且不同数据库管理系统的API有非常大的不同。对于不同的数据库管理系统,PowerBuilder8.0的数据库接口基本上都能以相同的模式来实现同一功能,这样就很便于程序员从一种数据库管理系统顺利地迁移到另一种数据库管理系统。数据库接口对各种数据库管理系统提供的原始API进行了封装,使得能够忽略很多数据库访问细切,透明地使用底层的数据库,并把底层的实现细节封装起来。

2.2 PowerBuilder8.0的数据库接口

PowerBuilder8.0支持的数据库接口,选择Tools\Database菜单,在弹出Database中列出了PowerBuilder8.0已经安装了的数据库接口。

在ODBC中每种数据库接口都是三个字符的简称,点开左边的“+”按钮,可以看见该数据库接口所携带的工具,以及该数据库接口下的数据库描述文件。在ODBC接口下,有一个已建立的数据库描述文件,另外还有几种与该接口相关的工具。上图中的接口所支持的数据库管理系统为关系型DBMS,而且大多都支持客户机/服务器模式。为了与数据库管理系统进行连接,除了需要PowerBuilder8.0自身携带的接口外,还需要数据库厂商所提供的接口文件。PowerBuilder8.0的数据库接口是动态链接库,而厂商提供的接口文件中则包含了可以供PowerBuilder8.0调用的应用编程接口。在PowerBuilder8.0中,数据库接口分两类:

1) 通用接口:ODBC接口、JDBC接口和OLE DB接口。

2) 专用接口:Oracle8.x,Oracle8i接口和Informix v9.x接口。

PowerBuilder8.0数据窗口、ODBC接口、ODBC驱动管理程序以及数据的驱动程序相互关系。

3 使用ODBC注册

PowerBuilder8.0是快速的客户端开发工具,在应用中必须与数据库管理结合起来才能运行,与数据库的连接通过ODBC接口来实现。在ODBC中配置数据源后,在程序代码中连接数据库,同时对数据库进行各种数据库的操作。PowerBuilder8.0开发的程序最终完成并交给用户使用,要求计算机自己能自动配置ODBC数据源,这样就减少了很多的困难。

注册表是计算机系统的核心数据库,里面存放着各种参数、应用程序和计算机系统信息。在实际的运用编程中,要对注册表进行必要的访问和修改。在PowerBuilder8.0中,采用注册函数对系统注册表的访问,可以方便地设置和获取应用程序及用户设置的信息。计算机中所有的数据源在注册时,同时对注册表都进行记录,对注册表中的项目进行相应的修改和填写,这些信息都会在计算机软件启动时进行确认、启动和应用。与ODBC相关的键有:

HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Driver中记录了所有已安装的ODBC驱动程序。

HKEY_LOCAL_MACKINE\software\ODBC\ODBCINST.INI中记录有相关的ODBC驱动程序信息。

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources中记录有数据源的类型。

HKEY_CURRENT_USER\software\ODBC\ODBC.INI中记录有数据源的详细信息。

单击Windows的“开始”菜单,选择“运行”项,在打开的窗口中输入“regedit”命令,再单击“确定”按钮,便可在打开的“注册表编辑器”中查看或编辑注册表信息。

PowerScript提供的注册表函数用到的是:RegistrySet()。

功能:在系统注册表中设置或创建指定键,如果要设置的键名或要设置的值不存在,则先建立再赋值。函数格式:Integer RegistrySet(key,valuename,valuetype,value)参数:

key:指定键名,String类型。

valuename:要设置或创建的键值名,String类型。如果注册表中不存在指定值名,该函数将创建新的值名。

valuetype:设定键值的数据类型,RegistryValueType枚举类型。

Value:要设置的值,其数据类型应该与valuetype参数指定的类型相匹配。返回值:函数执行成功时返回1,发生错误时返回-1。如果Valuevariable的数据类型与valuetype参数指定的类型不匹配,将引发运行错误。

程序中“注册”按钮的具体代码如下:

4 结束语

在计算机系统里,ODBC数据源作为计算机的数据库信息会被完全的保存和注册。当需要求改注册表信息时,在运行对话框里输入regedit,然后回车,找到HKEY_CURRENT_USER\software\ODBC\ODBC.INI,就会发现这里已经有了基本的注册信息,每个键对应了一个用户DSN数据源。在这里可以直接通过程序向系统中添加ODBC数据源,也可以在windows系统下注册。不同之处在于,如果采用程序注册信息,会是用户使用很方面,减少了不必要的麻烦,提高了工作效率。

参考文献:

[1] 范翠香. Authorware7中访问SQL数据库数据的两种方法研究[J].微型机与应用,2014(17).

[2] 王超.巧用PowerBuilder的数据管道[J].生物技术世界,2014(5).

[3] 卢守东.PowerBuilder应用程序的数据库连接技术[J].科技情报开发与经济,2007(27).

[4] 申屹.VC6使用ODBC API操作Excel表的具体步骤[J].电脑知识与技术,2014(5) .

上一篇:基于Web的大学生寝室管理系统设计与实现 下一篇:世界是自己的,与他人无关