怎么公布獨立的POWERBUILDER應用
發表時間:2023-08-19 來源:明輝站整理相關軟件相關文章人氣:
[摘要]溫翔 廣西柳州市摘要:本文介紹了發布獨立的POWERBUILDER應用所需要的驅動程序以及相關設置,特別介紹使用Powersoft的本地數據庫產品SQL Anywhere作為數據源的應用如何將其包...
溫翔 廣西柳州市
摘要:本文介紹了發布獨立的POWERBUILDER應用所需要的驅動程序以及相關設置,特別介紹使用Powersoft的本地數據庫產品SQL Anywhere作為數據源的應用如何將其包含在發行當中。
一.前言
PowerBuilder(PB)是SYBASE 公司的下屬公司Powersoft公司推出的新一代數據庫應用開發工具,由于其功能強大,開發快速及支持多平臺等而頗受廣大編程技術人員的歡迎。隨著有關PB的應用推廣使用,相關資料也紛紛面世,同時PowerSoft為適應開發的需要也不斷的推出PB的更新版本,PB作為第四代語言的數據庫開發工具在開發工具市場中占有相當高的比例。
在使用PB進行開發的過程中,不少開發者在感受PB帶來的快速,強大的功能愉悅的同時,也深感在發布應用時PB存在的不便之處:首先PB在編譯完成后的執行文件不能獨立運行,必須包含PB的運行時庫文件以及數據庫驅動文件,網絡驅動文件等。其次,在包含這些文件時必須十分清楚各個運行時庫文件的用途,不同數據庫對應的數據驅動的動態鏈接庫文件集等,但往往這方面的資料卻非常難得。因而一個本來非常精簡的PB應用在打包發布后卻顯得非常臃腫。
本文旨在講敘針對在Windows95/98下用PB6.0開發的,使用Powersoft的SQL Aaywhere數據庫作為本地數據庫的應用的發布過程,闡明如何為PB的應用發布“減肥”,特別是要說明的是如何將SQL Anywhere 數據庫精簡后包含在應用當中,并如何配置其數據源,而不用再另外安裝SQL Aaywhere作為本地數據庫的驅動。
一般地說發布一個PB應用除應用程序部件本身外還應該包含如下文件及進行相關操作:
1. PowerBuilder運行時動態鏈接庫( Runtime Library )。
2. 數據庫接口:一方面包括PB提供的數據庫專用接口或ODBC接口程序,另一方面包括不同數據庫廠商提供的ODBC數據庫驅動程序。
3. ODBC數據源的配置。
4. 如果是采用C/S方式,包含數據庫廠商的Client端,例如SYBASE公司的Open Client 及ORALCLE公司的SQL*Net。
就本文而言,我們只重點討論1-3項,現分別闡述如下:
二.PowerBuilder運行時動態鏈接庫( Runtime Library )。
不同版本的PB所需要的運行時動態鏈接庫文件不盡相同,但庫名有相似的地方,這些DLL都必須包含在應用程序目錄或系統目錄當中,對于Windows下32位的應用程序,必須一起發行的運行時庫是PBVM60.DLL,其他部件可選。對于Windows下16位的應用程序,必須一起發行的運行時庫是PBVM60W.DLL。總之,PB6.0版本相對于PB5.0及以前版本,運行時庫的數量減少了很多,這也有利于開發人員對應用程序打包發行。現以PB6.0運行在32位WINDOWS95/98為例說明,詳細解釋見下表1-1:
序號
文件
用途
備注
1
PBVM60.DLL
PowerBuilder 虛擬機
必需
2
PBDWE60.DLL
DataWindow 數據窗口引擎
可選
3
PBRTC60.DLL
Rich Text Control管道,超文本控件
可選
4
PBTRA60.DLL
DLL used for tracing db calls數據庫訪問跟蹤
可選
表1-1
三. 數據庫接口。
所有數據庫接口文件及驅動程序必需放在應用程序目錄或系統目錄中。
1. PB專用數據庫接口及ODBC數據庫接口。
在WINDOWS95/98下用戶可以根據自己采用的不同數據庫在發布應用程序時包含下列接口文件,見下表2-1所示。
序號
數據庫
接口文件
1
Powersoft ODBC Interface
PBODB60.DLL,PBODB60.INI
2
INFORMIX I-Net 5
PBIN560.DLL
3
INFORMIX I-Net 7
PBIN760.DLL
4
Microsoft SQL Server 4.x DB-Lib
PBSYB60.DLL,PBDBL60.DLL
5
Microsoft SQL Server 6.0
PBMSS60.DLL
6
Oracle Version 7.1
PBO7160.DLL
7
Oracle Version 7.2
PBO7260.DLL
8
Oracle Version 7.3
PBO7360.DLL
9
IBM databases
PBIBM60W.DLL
10
Sybase Information CONNECT DB2 Gateway
PBMDI60.DLL,PBDBL60.DLL
11
Sybase Net-Gateway for DB2
PBNET60.DLL,PBDBL60.DLL
12
Sybase SQL Server 4.x DB-Lib
PBSYT60.DLL,PBDBT60.DLL
13
Sybase SQL Server 10.x and 11.x CT-Lib
PBSYC60.DLL
表2-1
2. 第三方廠商提供的ODBC數據庫驅動程序。
如果用戶的數據庫采用ODBC數據庫驅動方式,這種數據庫的連接方式較專用數據庫接口復雜,并且連接使用的效率也比專用數據庫低。因此除要了包含上面講到的Powersoft ODBC Inerface 接口文件外,即PBODB60.DLL及PBODB60.INI兩個文件,還必需在WINDOWS目錄中存在ODBCINST.INI及ODBC.INI 文件 及 Microsoft ODBC 驅動程序及相關DLL。另外,就是要包含各個數據庫廠商提供或支持的ODBC數據庫驅動程序。下面列出 部分數據庫廠商的驅動程序如下表2-2:
序號
數據庫
驅動程序
1
Text
PBTXT09.DLL,PBTXT09.HLP,PBTXT12.DLL,PBTXT12.HLP
2
DB2
PBDB209.DLL,PBDB209.DLL,PBDB212.DLL,PBDB212.DLL
3
Btrieve
PBBTR09.DLL,WBTRCALL.DLL,PBBTR09.HLP,
PBBTR12.DLL,PBBTR12.HLP
4
dBASE
PBDBF09.DLL,PBDBF09.HLP,PBDBF12.DLL,PBDBF12.HLP
5
Paradox 4/5
PBIDP09.DLL,PBBAS09.DLL,PBDBC09.DLL,PBFLT09.DLL
PBUTL09.DLL,PBIDP09.HLP,IVTRN09.DLL,IVPB.LIC
6
SQL Anywhere
WOD50W.DLL,WL50EN.DLL,WODBC.HLP,WODBC.HLP WOD50T.DLL,WL50ENT.DLL,WTR50T.DLL,WODBC.HLP
表2-2
四. ODBC數據源配置。
在包含以上文件之后,還必需對使用ODBC數據庫方式的應用進行ODBC數據源的配置,以便在安裝完畢后應用程序可以直接訪問用戶數據源。以下介紹的數據源配置原理及方法由于涉及到修改系統注冊表,可以使用手工方式實現,也可以在制作應用程序的安裝盤時在安裝步驟中設置好。ODBC數據源的配置涉及到微軟的ODBC驅動程序及相關動態鏈接庫。此部件可以在安裝WINDOWS95/98時作為系統的一部分裝入機器,并在“控制面板”中可以找到“32 bit ODBC(32位ODBC)”數據源管理器項并使用其進行操作。
下面以使用SQL Anywhere 數據庫創建的用戶數據庫為例來說明如何使用數據源管理器進行ODBC的手工配置及如何在安裝程序中自動修改系統注冊表,其他數據庫可以參考SQL Anywhere 進行操作。首先列出SQL Anywhere 數據庫必需的最精簡的文件清單。見表3-1:
序號
文件
作用
類型
1
WOD50T.DLL
SQL Anywhere ODBC 驅動
ODBC驅動
2
DBL50T.DLL
數據庫接口動態鏈接庫
數據庫文件
3
WL50ENT.DLL
數據庫接口的英文字符串
4
WTR50T.DLL
ODBC翻譯動態鏈接庫
5
WODBC.HLP
配置ODBC的幫助文件
6
DBENG50.EXE
數據庫引擎
表3-1
1.使用數據源管理器配置用戶數據源。
1.1. 安裝SQL Anywhere數據庫驅動程序,使數據源管理器中的"ODBC驅動程序"頁增加一行SQL Anywhere的驅動說明。
1.2. 在"用戶DSN"一頁選擇"添加",然后選擇SQL Anywhere數據源,出現數據源的配置信息表后,將數據源名(Data Source Name),數據庫名(Database File),用戶ID號(User ID),用戶密碼(Password)等信息添齊,選擇"OK"確認,此時在"用戶數據源"的窗口中就會增加用戶的數據庫的ODBC驅動,選擇"確認"后退出數據源管理器。
進行以上兩步以后重新啟動系統,用戶就可以在運行應用程序后使用SQL Anywhere數據庫。
2. 修改INI文件及系統注冊表配置用戶數據源。
(以下注:C:\TestApp為用戶應用程序目錄,C:\TestApp\Sqlany50為應用程序包含的SQL Anywhere數據庫驅動文件目錄,TestDB.DB為用戶數據庫。)
1.1修改ODBCINST.INI文件:
在[ODBC Drivers] 節中增加一行:
Sybase SQL Anywhere 5.0 = Installed
增加一節[Sybase SQL Anywhere 5.0] 并在此節中加入:
Setup = C:\TestApp\Sqlany50\WOD50W.DLL
Driver = C:\TestApp\Sqlany50\WOD50W.DLL
1.2修改ODBC.INI文件:
在[ODBC Data Sources]節中增加一行:
TestDB = Sybase SQL Anywhere 5.0
增加一節[TestDB]并在此節中加入:
Driver = C:\TestApp\Sqlany50\WOD50W.DLL
1. 3修改系統注冊表:
在HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Source下,增加字符串鍵值:
名稱
數值
TestDB
"Sybase SQL Anywhere 5.0"
在HKEY_CURRENT_USER\Software\ODBC\ODBC.INI下,增加主鍵:TestDB,并分別加入鍵值如下:
名稱
數值
Autostop
"yes"
Databasefile
"C:\TestApp\TestDB.DB
Databasename
"TestDB"
Driver
"C:\TestApp\Sqlany50\WOD50T.DLL"
PWD
"sql"
Start
"C:\TestApp\Sqlany50\dbeng50.exe -d -c1024"
UID
"dba"
在用戶的安裝程序中將以上步驟加入,可以使用戶的應用程序在不必另安裝SQL Anywhere數據庫驅動也能直接訪問用戶數據源,這也是講述這一部分內容的目的,即要將SQL Anywhere數據庫的必需文件包含發行,并在安裝過程中修改INI文件及系統注冊表配置數據源,從而實現用戶應用程序獨立發布。
當然,以上提及的僅僅是針對性很強的用戶環境,其他版本的PB發行可以參考以上所述進行,希望本文能給讀者帶來一點點啟發或價值,由于作者撰稿倉促難免有疏漏之處,懇請讀者諒解。