怎么公布獨(dú)立的POWERBUILDER應(yīng)用
發(fā)表時(shí)間:2023-08-19 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]溫翔 廣西柳州市摘要:本文介紹了發(fā)布獨(dú)立的POWERBUILDER應(yīng)用所需要的驅(qū)動(dòng)程序以及相關(guān)設(shè)置,特別介紹使用Powersoft的本地?cái)?shù)據(jù)庫(kù)產(chǎn)品SQL Anywhere作為數(shù)據(jù)源的應(yīng)用如何將其包...
溫翔 廣西柳州市
摘要:本文介紹了發(fā)布獨(dú)立的POWERBUILDER應(yīng)用所需要的驅(qū)動(dòng)程序以及相關(guān)設(shè)置,特別介紹使用Powersoft的本地?cái)?shù)據(jù)庫(kù)產(chǎn)品SQL Anywhere作為數(shù)據(jù)源的應(yīng)用如何將其包含在發(fā)行當(dāng)中。
一.前言
PowerBuilder(PB)是SYBASE 公司的下屬公司Powersoft公司推出的新一代數(shù)據(jù)庫(kù)應(yīng)用開發(fā)工具,由于其功能強(qiáng)大,開發(fā)快速及支持多平臺(tái)等而頗受廣大編程技術(shù)人員的歡迎。隨著有關(guān)PB的應(yīng)用推廣使用,相關(guān)資料也紛紛面世,同時(shí)PowerSoft為適應(yīng)開發(fā)的需要也不斷的推出PB的更新版本,PB作為第四代語(yǔ)言的數(shù)據(jù)庫(kù)開發(fā)工具在開發(fā)工具市場(chǎng)中占有相當(dāng)高的比例。
在使用PB進(jìn)行開發(fā)的過(guò)程中,不少開發(fā)者在感受PB帶來(lái)的快速,強(qiáng)大的功能愉悅的同時(shí),也深感在發(fā)布應(yīng)用時(shí)PB存在的不便之處:首先PB在編譯完成后的執(zhí)行文件不能獨(dú)立運(yùn)行,必須包含PB的運(yùn)行時(shí)庫(kù)文件以及數(shù)據(jù)庫(kù)驅(qū)動(dòng)文件,網(wǎng)絡(luò)驅(qū)動(dòng)文件等。其次,在包含這些文件時(shí)必須十分清楚各個(gè)運(yùn)行時(shí)庫(kù)文件的用途,不同數(shù)據(jù)庫(kù)對(duì)應(yīng)的數(shù)據(jù)驅(qū)動(dòng)的動(dòng)態(tài)鏈接庫(kù)文件集等,但往往這方面的資料卻非常難得。因而一個(gè)本來(lái)非常精簡(jiǎn)的PB應(yīng)用在打包發(fā)布后卻顯得非常臃腫。
本文旨在講敘針對(duì)在Windows95/98下用PB6.0開發(fā)的,使用Powersoft的SQL Aaywhere數(shù)據(jù)庫(kù)作為本地?cái)?shù)據(jù)庫(kù)的應(yīng)用的發(fā)布過(guò)程,闡明如何為PB的應(yīng)用發(fā)布“減肥”,特別是要說(shuō)明的是如何將SQL Anywhere 數(shù)據(jù)庫(kù)精簡(jiǎn)后包含在應(yīng)用當(dāng)中,并如何配置其數(shù)據(jù)源,而不用再另外安裝SQL Aaywhere作為本地?cái)?shù)據(jù)庫(kù)的驅(qū)動(dòng)。
一般地說(shuō)發(fā)布一個(gè)PB應(yīng)用除應(yīng)用程序部件本身外還應(yīng)該包含如下文件及進(jìn)行相關(guān)操作:
1. PowerBuilder運(yùn)行時(shí)動(dòng)態(tài)鏈接庫(kù)( Runtime Library )。
2. 數(shù)據(jù)庫(kù)接口:一方面包括PB提供的數(shù)據(jù)庫(kù)專用接口或ODBC接口程序,另一方面包括不同數(shù)據(jù)庫(kù)廠商提供的ODBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。
3. ODBC數(shù)據(jù)源的配置。
4. 如果是采用C/S方式,包含數(shù)據(jù)庫(kù)廠商的Client端,例如SYBASE公司的Open Client 及ORALCLE公司的SQL*Net。
就本文而言,我們只重點(diǎn)討論1-3項(xiàng),現(xiàn)分別闡述如下:
二.PowerBuilder運(yùn)行時(shí)動(dòng)態(tài)鏈接庫(kù)( Runtime Library )。
不同版本的PB所需要的運(yùn)行時(shí)動(dòng)態(tài)鏈接庫(kù)文件不盡相同,但庫(kù)名有相似的地方,這些DLL都必須包含在應(yīng)用程序目錄或系統(tǒng)目錄當(dāng)中,對(duì)于Windows下32位的應(yīng)用程序,必須一起發(fā)行的運(yùn)行時(shí)庫(kù)是PBVM60.DLL,其他部件可選。對(duì)于Windows下16位的應(yīng)用程序,必須一起發(fā)行的運(yùn)行時(shí)庫(kù)是PBVM60W.DLL?傊,PB6.0版本相對(duì)于PB5.0及以前版本,運(yùn)行時(shí)庫(kù)的數(shù)量減少了很多,這也有利于開發(fā)人員對(duì)應(yīng)用程序打包發(fā)行,F(xiàn)以PB6.0運(yùn)行在32位WINDOWS95/98為例說(shuō)明,詳細(xì)解釋見下表1-1:
序號(hào)
文件
用途
備注
1
PBVM60.DLL
PowerBuilder 虛擬機(jī)
必需
2
PBDWE60.DLL
DataWindow 數(shù)據(jù)窗口引擎
可選
3
PBRTC60.DLL
Rich Text Control管道,超文本控件
可選
4
PBTRA60.DLL
DLL used for tracing db calls數(shù)據(jù)庫(kù)訪問(wèn)跟蹤
可選
表1-1
三. 數(shù)據(jù)庫(kù)接口。
所有數(shù)據(jù)庫(kù)接口文件及驅(qū)動(dòng)程序必需放在應(yīng)用程序目錄或系統(tǒng)目錄中。
1. PB專用數(shù)據(jù)庫(kù)接口及ODBC數(shù)據(jù)庫(kù)接口。
在WINDOWS95/98下用戶可以根據(jù)自己采用的不同數(shù)據(jù)庫(kù)在發(fā)布應(yīng)用程序時(shí)包含下列接口文件,見下表2-1所示。
序號(hào)
數(shù)據(jù)庫(kù)
接口文件
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數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。
如果用戶的數(shù)據(jù)庫(kù)采用ODBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)方式,這種數(shù)據(jù)庫(kù)的連接方式較專用數(shù)據(jù)庫(kù)接口復(fù)雜,并且連接使用的效率也比專用數(shù)據(jù)庫(kù)低。因此除要了包含上面講到的Powersoft ODBC Inerface 接口文件外,即PBODB60.DLL及PBODB60.INI兩個(gè)文件,還必需在WINDOWS目錄中存在ODBCINST.INI及ODBC.INI 文件 及 Microsoft ODBC 驅(qū)動(dòng)程序及相關(guān)DLL。另外,就是要包含各個(gè)數(shù)據(jù)庫(kù)廠商提供或支持的ODBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。下面列出 部分?jǐn)?shù)據(jù)庫(kù)廠商的驅(qū)動(dòng)程序如下表2-2:
序號(hào)
數(shù)據(jù)庫(kù)
驅(qū)動(dòng)程序
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數(shù)據(jù)源配置。
在包含以上文件之后,還必需對(duì)使用ODBC數(shù)據(jù)庫(kù)方式的應(yīng)用進(jìn)行ODBC數(shù)據(jù)源的配置,以便在安裝完畢后應(yīng)用程序可以直接訪問(wèn)用戶數(shù)據(jù)源。以下介紹的數(shù)據(jù)源配置原理及方法由于涉及到修改系統(tǒng)注冊(cè)表,可以使用手工方式實(shí)現(xiàn),也可以在制作應(yīng)用程序的安裝盤時(shí)在安裝步驟中設(shè)置好。ODBC數(shù)據(jù)源的配置涉及到微軟的ODBC驅(qū)動(dòng)程序及相關(guān)動(dòng)態(tài)鏈接庫(kù)。此部件可以在安裝WINDOWS95/98時(shí)作為系統(tǒng)的一部分裝入機(jī)器,并在“控制面板”中可以找到“32 bit ODBC(32位ODBC)”數(shù)據(jù)源管理器項(xiàng)并使用其進(jìn)行操作。
下面以使用SQL Anywhere 數(shù)據(jù)庫(kù)創(chuàng)建的用戶數(shù)據(jù)庫(kù)為例來(lái)說(shuō)明如何使用數(shù)據(jù)源管理器進(jìn)行ODBC的手工配置及如何在安裝程序中自動(dòng)修改系統(tǒng)注冊(cè)表,其他數(shù)據(jù)庫(kù)可以參考SQL Anywhere 進(jìn)行操作。首先列出SQL Anywhere 數(shù)據(jù)庫(kù)必需的最精簡(jiǎn)的文件清單。見表3-1:
序號(hào)
文件
作用
類型
1
WOD50T.DLL
SQL Anywhere ODBC 驅(qū)動(dòng)
ODBC驅(qū)動(dòng)
2
DBL50T.DLL
數(shù)據(jù)庫(kù)接口動(dòng)態(tài)鏈接庫(kù)
數(shù)據(jù)庫(kù)文件
3
WL50ENT.DLL
數(shù)據(jù)庫(kù)接口的英文字符串
4
WTR50T.DLL
ODBC翻譯動(dòng)態(tài)鏈接庫(kù)
5
WODBC.HLP
配置ODBC的幫助文件
6
DBENG50.EXE
數(shù)據(jù)庫(kù)引擎
表3-1
1.使用數(shù)據(jù)源管理器配置用戶數(shù)據(jù)源。
1.1. 安裝SQL Anywhere數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,使數(shù)據(jù)源管理器中的"ODBC驅(qū)動(dòng)程序"頁(yè)增加一行SQL Anywhere的驅(qū)動(dòng)說(shuō)明。
1.2. 在"用戶DSN"一頁(yè)選擇"添加",然后選擇SQL Anywhere數(shù)據(jù)源,出現(xiàn)數(shù)據(jù)源的配置信息表后,將數(shù)據(jù)源名(Data Source Name),數(shù)據(jù)庫(kù)名(Database File),用戶ID號(hào)(User ID),用戶密碼(Password)等信息添齊,選擇"OK"確認(rèn),此時(shí)在"用戶數(shù)據(jù)源"的窗口中就會(huì)增加用戶的數(shù)據(jù)庫(kù)的ODBC驅(qū)動(dòng),選擇"確認(rèn)"后退出數(shù)據(jù)源管理器。
進(jìn)行以上兩步以后重新啟動(dòng)系統(tǒng),用戶就可以在運(yùn)行應(yīng)用程序后使用SQL Anywhere數(shù)據(jù)庫(kù)。
2. 修改INI文件及系統(tǒng)注冊(cè)表配置用戶數(shù)據(jù)源。
(以下注:C:\TestApp為用戶應(yīng)用程序目錄,C:\TestApp\Sqlany50為應(yīng)用程序包含的SQL Anywhere數(shù)據(jù)庫(kù)驅(qū)動(dòng)文件目錄,TestDB.DB為用戶數(shù)據(jù)庫(kù)。)
1.1修改ODBCINST.INI文件:
在[ODBC Drivers] 節(jié)中增加一行:
Sybase SQL Anywhere 5.0 = Installed
增加一節(jié)[Sybase SQL Anywhere 5.0] 并在此節(jié)中加入:
Setup = C:\TestApp\Sqlany50\WOD50W.DLL
Driver = C:\TestApp\Sqlany50\WOD50W.DLL
1.2修改ODBC.INI文件:
在[ODBC Data Sources]節(jié)中增加一行:
TestDB = Sybase SQL Anywhere 5.0
增加一節(jié)[TestDB]并在此節(jié)中加入:
Driver = C:\TestApp\Sqlany50\WOD50W.DLL
1. 3修改系統(tǒng)注冊(cè)表:
在HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Source下,增加字符串鍵值:
名稱
數(shù)值
TestDB
"Sybase SQL Anywhere 5.0"
在HKEY_CURRENT_USER\Software\ODBC\ODBC.INI下,增加主鍵:TestDB,并分別加入鍵值如下:
名稱
數(shù)值
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"
在用戶的安裝程序中將以上步驟加入,可以使用戶的應(yīng)用程序在不必另安裝SQL Anywhere數(shù)據(jù)庫(kù)驅(qū)動(dòng)也能直接訪問(wèn)用戶數(shù)據(jù)源,這也是講述這一部分內(nèi)容的目的,即要將SQL Anywhere數(shù)據(jù)庫(kù)的必需文件包含發(fā)行,并在安裝過(guò)程中修改INI文件及系統(tǒng)注冊(cè)表配置數(shù)據(jù)源,從而實(shí)現(xiàn)用戶應(yīng)用程序獨(dú)立發(fā)布。
當(dāng)然,以上提及的僅僅是針對(duì)性很強(qiáng)的用戶環(huán)境,其他版本的PB發(fā)行可以參考以上所述進(jìn)行,希望本文能給讀者帶來(lái)一點(diǎn)點(diǎn)啟發(fā)或價(jià)值,由于作者撰稿倉(cāng)促難免有疏漏之處,懇請(qǐng)讀者諒解。