摘要本文介绍了发布独立的POWERBUILDER应用所需要的驱动程序以及相关设置
特别介绍使用Powersoft的本地数据库产品SQL Anywhere作为数据源的应用如何将其包含在发行当中
一.前言
PowerBuilder(PB)是SYBASE 公司的下属公司Powersoft公司推出的新一代数据库应用开发工具由于其功能强大开发快速及支持多平台等而颇受广大编程技术人员的欢迎随着有关PB的应用推广使用相关资料也纷纷面世同时PowerSoft为适应开发的需要也不断的推出PB的更新版本PB作为第四代语言的数据库开发工具在开发工具市场中占有相当高的比例
在使用PB进行开发的过程中不少开发者在感受PB带来的快速强大的功能愉悦的同时也深感在发布应用时PB存在的不便之处
首先PB在编译完成后的执行文件不能独立运行必须包含PB的运行时库文件以及数据库驱动文件网络驱动文件等
其次在包含这些文件时必须十分清楚各个运行时库文件的用途不同数据库对应的数据驱动的动态链接库文件集等但往往这方面的资料却非常难得因而一个本来非常精简的PB应用在打包发布后却显得非常臃肿
本文旨在讲叙针对在Windows/下用PB开发的使用Powersoft的SQL Anywhere数据库作为本地数据库的应用的发布过程阐明如何为PB的应用发布减肥特别要说明的是如何将SQL Anywhere 数据库精简后包含在应用当中并如何配置其数据源而不用再另外安装SQL Anywhere作为本地数据库的驱动
一般地说发布一个PB应用除应用程序部件本身外还应该包含如下文件及进行相关操作
. PowerBuilder运行时动态链接库( Runtime Library )
. 数据库接口一方面包括PB提供的数据库专用接口或ODBC接口程序另一方面包括不同数据库厂商提供的ODBC数据库驱动程序
. ODBC数据源的配置
. 如果是采用C/S方式包含数据库厂商的Client端例如SYBASE公司的Open Client 及ORALCLE公司的SQL*Net
就本文而言我们只重点讨论项现分别阐述如下
二.PowerBuilder运行时动态链接库( Runtime Library )
不同版本的PB所需要的运行时动态链接库文件不尽相同但库名有相似的地方这些DLL都必须包含在应用程序目录或系统目录当中对于Windows下位的应用程序必须一起发行的运行时库是PBVM.DLL其他部件可选对于Windows下位的应用程序必须一起发行的运行时库是PBVMW.DLL总之PB.版本相对于PB.及以前版本运行时库的数量减少了很多这也有利于开发人员对应用程序打包发行现以PB.运行在位WINDOWS/为例说明详细解释见下表
序号文件用途备注
PBVM
DLLPowerBuilder 虚拟机必需
PBDWE
DLLDataWindow 数据窗口引擎可选
PBRTC
DLLRich Text Control管道
超文本控件可选
PBTRA
DLLDLL used for tracing db calls数据库访问跟蹤可选表
三. 数据库接口
所有数据库接口文件及驱动程序必需放在应用程序目录或系统目录中
. PB专用数据库接口及ODBC数据库接口
在WINDOWS/下用户可以根据自己采用的不同数据库在发布应用程序时包含下列接口文件见下表所示
序号数据库接口文件
Powersoft ODBC InterfacePBODB
DLL
PBODB
INI
INFORMIX I
Net
PBIN
DLL
INFORMIX I
Net
PBIN
DLL
Microsoft SQL Server
x DB
LibPBSYB
DLL
PBDBL
DLL
Microsoft SQL Server PBMSSDLLOracle Version PBMSSDLLOracle Version PBODLLOracle Version PBODLLIBM databases PBIBMWDLLSybase Information CONNECT DB GatewayPBMDIDLLPBDBLDLLSybase NetGateway for DBPBNETDLLPBDBLDLLSybase SQL Server x DBLibPBSYTDLLPBDBTDLLSybase SQL Server x and x CTLibPBSYCDLL表
. 第三方厂商提供的ODBC数据库驱动程序
如果用户的数据库采用ODBC数据库驱动方式这种数据库的连接方式较专用数据库接口复杂并且连接使用的效率也比专用数据库低因此除要了包含上面讲到的Powersoft ODBC Inerface 接口文件外即PBODBDLL及PBODBINI两个文件还必需在WINDOWS目录中存在ODBCINSTINI及ODBCINI 文件 及 Microsoft ODBC 驱动程序及相关DLL另外就是要包含各个数据库厂商提供或支持的ODBC数据库驱动程序下面列出部分数据库厂商的驱动程序如下表
序号数据库驱动程序
TextPBTXT
DLL
PBTXT
HLP
PBTXT
DLL
PBTXT
HLP
DB
PBDB
DLL
PBDB
DLL
PBDB
DLL
PBDB
DLL
BtrievePBBTR
DLL
WBTRCALL
DLL
PBBTR
HLP
PBBTRDLLPBBTRHLPdBASEPBDBFDLLPBDBFHLPPBDBFDLLPBDBFHLPParadox /PBIDPDLLPBBASDLLPBDBCDLLPBFLTDLL
PBUTLDLLPBIDPHLPIVTRNDLLIVPBLICSQL AnywhereWODWDLLWLENDLLWODBCHLPWODBCHLPWODTDLLWLENTDLLWTRTDLLWODBCHLP表
四. ODBC数据源配置
在包含以上文件之后还必需对使用ODBC数据库方式的应用进行ODBC数据源的配置以便在安装完毕后应用程序可以直接访问用户数据源以下介绍的数据源配置原理及方法由于涉及到修改系统注册表可以使用手工方式实现也可以在制作应用程序的安装盘时在安装步骤中设置好ODBC数据源的配置涉及到微软的ODBC驱动程序及相关动态链接库此部件可以在安装WINDOWS/时作为系统的一部分装入机器并在控制面板中可以找到 bit ODBC(位ODBC)数据源管理器项并使用其进行操作
下面以使用SQL Anywhere 数据库创建的用户数据库为例来说明如何使用数据源管理器进行ODBC的手工配置及如何在安装程序中自动修改系统注册表其他数据库可以参考SQL Anywhere 进行操作首先列出SQL Anywhere 数据库必需的最精简的文件清单见表:
序号文件作用类型
WOD
T
DLLSQL Anywhere ODBC 驱动ODBC驱动
DBL
T
DLL数据库接口动态链接库数据库文件
WL
ENT
DLL数据库接口的英文字符串
WTR
T
DLLODBC翻译动态链接库
WODBC
HLP配置ODBC的帮助文件
DBENG
EXE数据库引擎表
.使用数据源管理器配置用户数据源
安装SQL Anywhere数据库驱动程序使数据源管理器中的ODBC驱动程序页增加一行SQL Anywhere的驱动说明
在用户DSN一页选择添加然后选择SQL Anywhere数据源出现数据源的配置信息表后将数据源名(Data Source Name)数据库名(Database File)用户ID号(User ID)用户密码(Password)等信息添齐选择OK确认此时在用户数据源的窗口中就会增加用户的数据库的ODBC驱动选择确认后退出数据源管理器
进行以上两步以后重新启动系统用户就可以在运行应用程序后使用SQL Anywhere数据库
修改INI文件及系统注册表配置用户数据源(以下注C:\TestApp为用户应用程序目录C:\TestApp\Sqlany为应用程序包含的SQL Anywhere数据库驱动文件目录TestDBDB为用户数据库)
修改ODBCINSTINI文件:
在[ODBC Drivers] 节中增加一行:Sybase SQL Anywhere = Installed增加一节[Sybase SQL Anywhere ] 并在此节中加入:
Setup = C:\TestApp\Sqlany\WODWDLL
Driver = C:\TestApp\Sqlany\WODWDLL
修改ODBCINI文件
在[ODBC Data Sources]节中增加一行TestDB = Sybase SQL Anywhere
增加一节[TestDB]并在此节中加入:Driver = C:\TestApp\Sqlany\WODWDLL
修改系统注册表
在HKEY_CURRENT_USER\Software\ODBC\ODBCINI\ODBC Data Source下增加字符串键值
名称数值TestDB
Sybase SQL Anywhere
在HKEY_CURRENT_USER\Software\ODBC\ODBCINI下增加主键:TestDB并分别加入键值如下:
名称数值Autostop
yes
Databasefile
C:\TestApp\TestDB
DBDatabasename
TestDB
Driver
C:\TestApp\Sqlany
\WOD
T
DLL
PWD
sql
Start
C:\TestApp\Sqlany
\dbeng
exe
d
c
UID
dba
在用户的安装程序中将以上步骤加入可以使用户的应用程序在不必另安装SQL Anywhere数据库驱动也能直接访问用户数据源这也是讲述这一部分内容的目的即要将SQL Anywhere数据库的必需文件包含发行并在安装过程中修改INI文件及系统注册表配置数据源从而实现用户应用程序独立发布
当然以上提及的仅仅是针对性很强的用户环境其他版本的PB发行可以参考以上所述进行希望本文能给读者带来一点点启发或价值由于作者撰稿仓促难免有疏漏之处恳请读者谅解