摘要本文介紹了發布獨立的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
DLL
PowerBuilder 虛擬機
必需
PBDWE
DLL
DataWindow 數據窗口引擎
可選
PBRTC
DLL
Rich Text Control管道
超文本控件
可選
PBTRA
DLL
DLL used for tracing db calls數據庫訪問跟蹤
可選表
三. 數據庫接口
所有數據庫接口文件及驅動程序必需放在應用程序目錄或系統目錄中
. PB專用數據庫接口及ODBC數據庫接口
在WINDOWS/下用戶可以根據自己采用的不同數據庫在發布應用程序時包含下列接口文件見下表所示
序號
數據庫
接口文件
Powersoft ODBC Interface
PBODB
DLL
PBODB
INI
INFORMIX I
Net
PBIN
DLL
INFORMIX I
Net
PBIN
DLL
Microsoft SQL Server
x DB
Lib
PBSYB
DLL
PBDBL
DLL
Microsoft SQL Server
PBMSS
DLL
Oracle Version
PBMSS
DLL
Oracle Version
PBO
DLL
Oracle Version
PBO
DLL
IBM databases
PBIBM
W
DLL
Sybase Information CONNECT DB
Gateway
PBMDI
DLL
PBDBL
DLL
Sybase Net
Gateway for DB
PBNET
DLL
PBDBL
DLL
Sybase SQL Server
x DB
Lib
PBSYT
DLL
PBDBT
DLL
Sybase SQL Server
x and
x CT
Lib
PBSYC
DLL表
. 第三方廠商提供的ODBC數據庫驅動程序
如果用戶的數據庫采用ODBC數據庫驅動方式這種數據庫的連接方式較專用數據庫接口復雜並且連接使用的效率也比專用數據庫低因此除要了包含上面講到的Powersoft ODBC Inerface 接口文件外即PBODBDLL及PBODBINI兩個文件還必需在WINDOWS目錄中存在ODBCINSTINI及ODBCINI 文件 及 Microsoft ODBC 驅動程序及相關DLL另外就是要包含各個數據庫廠商提供或支持的ODBC數據庫驅動程序下面列出部分數據庫廠商的驅動程序如下表
序號
數據庫
驅動程序
Text
PBTXT
DLL
PBTXT
HLP
PBTXT
DLL
PBTXT
HLP
DB
PBDB
DLL
PBDB
DLL
PBDB
DLL
PBDB
DLL
Btrieve
PBBTR
DLL
WBTRCALL
DLL
PBBTR
HLP
PBBTR
DLL
PBBTR
HLP
dBASE
PBDBF
DLL
PBDBF
HLP
PBDBF
DLL
PBDBF
HLP
Paradox
/
PBIDP
DLL
PBBAS
DLL
PBDBC
DLL
PBFLT
DLL
PBUTL
DLL
PBIDP
HLP
IVTRN
DLL
IVPB
LIC
SQL Anywhere
WOD
W
DLL
WL
EN
DLL
WODBC
HLP
WODBC
HLP
WOD
T
DLL
WL
ENT
DLL
WTR
T
DLL
WODBC
HLP表
四. ODBC數據源配置
在包含以上文件之後還必需對使用ODBC數據庫方式的應用進行ODBC數據源的配置以便在安裝完畢後應用程序可以直接訪問用戶數據源以下介紹的數據源配置原理及方法由於涉及到修改系統注冊表可以使用手工方式實現也可以在制作應用程序的安裝盤時在安裝步驟中設置好ODBC數據源的配置涉及到微軟的ODBC驅動程序及相關動態鏈接庫此部件可以在安裝WINDOWS/時作為系統的一部分裝入機器並在控制面板中可以找到 bit ODBC(位ODBC)數據源管理器項並使用其進行操作
下面以使用SQL Anywhere 數據庫創建的用戶數據庫為例來說明如何使用數據源管理器進行ODBC的手工配置及如何在安裝程序中自動修改系統注冊表其他數據庫可以參考SQL Anywhere 進行操作首先列出SQL Anywhere 數據庫必需的最精簡的文件清單見表:
序號
文件
作用
類型
WOD
T
DLL
SQL Anywhere ODBC 驅動
ODBC驅動
DBL
T
DLL
數據庫接口動態鏈接庫
數據庫文件
WL
ENT
DLL
數據庫接口的英文字符串
WTR
T
DLL
ODBC翻譯動態鏈接庫
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
DB
Databasename
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發行可以參考以上所述進行希望本文能給讀者帶來一點點啟發或價值由於作者撰稿倉促難免有疏漏之處懇請讀者諒解
From:http://tw.wingwit.com/Article/program/SQL/201311/16204.html