PB開發(fā)Sybase數(shù)據(jù)庫應用技巧點滴
發(fā)表時間:2023-07-23 來源:明輝站整理相關軟件相關文章人氣:
[摘要]PowerBuilder(PB)是一種跨平臺的且功能強大、性能優(yōu)異的開發(fā)工具。在客戶端/服務器系統(tǒng)結(jié)構(gòu)的應用模式中,作為客戶端的一種面向?qū)ο蟮目梢暬O計工具,在與數(shù)據(jù)庫相連接操作的系統(tǒng)中得到較為廣泛...
PowerBuilder(PB)是一種跨平臺的且功能強大、性能優(yōu)異的開發(fā)工具。在客戶端/服務器系統(tǒng)結(jié)構(gòu)的應用模式中,作為客戶端的一種面向?qū)ο蟮目梢暬O計工具,在與數(shù)據(jù)庫相連接操作的系統(tǒng)中得到較為廣泛的應用。筆者在使用PB開發(fā)Sybase數(shù)據(jù)庫應用,建立企業(yè)管理信息系統(tǒng)的過程中,積累了一點經(jīng)驗和技巧,現(xiàn)將其中的一部分在此做點介紹,或許能夠?qū)ε笥褌冇悬c啟發(fā)和幫助。
一、PowerBuilder與Sybase SQL Server的連接
若在連接時出現(xiàn)問題,必須要冷靜多思考。首先要檢查客戶端的情況,確認Open Client已經(jīng)安裝,并正確配置。要注意OPen Client必須與PowerBuilder同為32位,或同為16位。
PB與Sybase連不上,常見的幾種錯誤現(xiàn)象及處理方法說明如下:
1.已連接上Sybase數(shù)據(jù)庫,但在PB的數(shù)據(jù)庫(database)畫板中卻看不到用戶已經(jīng)定義過的表。
此時可打開isql或Sybase Advantage,用"sa"登錄到"master"數(shù)據(jù)庫,執(zhí)行pbsyc.sql腳本文件(該文件位于PB安裝盤的server目錄)即可。值得一提的是,對Sybase Adaptive Server的版本號要加以注意,根據(jù)資料對有的相關項進行點改動。
2.在打開PB的項目畫板(Project)或庫畫板(Library)時,出現(xiàn)錯誤信息提示:"cannot locate source management dll"。
這個問題是因為在安裝PB時,選擇了安裝版本控制軟件(如PVCS)的接口,實際上該用戶的機器上并未安裝相應的版本控制軟件。
解決方法: 在PB的設置中,將版本控制軟件的接口去掉,具體操作步驟是,可在PB.ini文件中,找到[Library]節(jié),將"SourceVendor= ..."這一行注釋去掉。
3.數(shù)據(jù)庫連接正常,但打開用戶表時若該表中有漢字則出現(xiàn)亂碼。
這個問題通常是由于客戶端的缺省字符集設置和服務器端的字符集設置不一致,應修改locales.dat文件(該文件位于Sybase安裝目錄的locales子目錄下)。如果在Windows95/98操作系統(tǒng)下,可修改[NT]節(jié)下的相關內(nèi)容;若操作系統(tǒng)平臺是Windows3.x,則修改[win3]節(jié)下的內(nèi)容。在此節(jié)有一行文本為locale=default,us_english,is0_1,則說明客戶端的缺省字符集設為iso_1。開發(fā)中文管理信息系統(tǒng)一般建議將字符集改為cp85o,在服務器端必須要做相應的調(diào)整。
二、PB編程的幾點技巧
1.在數(shù)據(jù)窗口(Datawindow)中實現(xiàn)數(shù)據(jù)列自動折行。
PB軟件在市場上受用戶歡迎的原因之一,就是它的數(shù)據(jù)窗口功能很強,而且方便應用。
在使用Datawindow時,常會遇到某列的數(shù)據(jù)太長,不能同時顯示全部的情況。若采用自動水平滾動,操作起來又不夠簡便。有一種方法能實現(xiàn)列數(shù)據(jù)多行顯示(自動折行)。具體步驟如下:
①.在Datawindow Panter中打開此DataWindow,在需設定自動折行的列上雙擊鼠標,彈開此列的屬性窗口。點Position標簽,選中Autosize Heigh多選框; 再選擇Edit標簽, 不選中Auto HorzScroll多選框;單擊OK按鈕,保存所做的修改。
②.點中Detail Band(即寫有Detail的灰色長帶),單擊鼠標右鍵,選擇Properties...菜單項,選中Autosize Height多選框,單擊OK按鈕,保存所做的修改。
2.在數(shù)據(jù)窗口(Datawindow)中用Enter鍵代替Tab鍵在字段間移動。
其基本做法是: 選中該數(shù)據(jù)窗口,定義一用戶事件,在彈出的用戶事件定義窗口中,將Event ID與pbm_dwnprocessenter 相關聯(lián),在該事件的腳本中增加下面兩行語句:
Send(Handle(this),256,9 Long(0,0)) (向系統(tǒng)發(fā)出處理TAB鍵的消息)
return 1 (忽略Enter鍵接下來應進行的缺省處理)
3.選用Grid數(shù)據(jù)窗口方式時避免表頭上方也出現(xiàn)表格線。
用Grid數(shù)據(jù)窗口方式能夠?qū)崿F(xiàn)表格式報表輸出,但是如在表頭上方不加以控制或處理,它將出現(xiàn)Detail Band中各數(shù)據(jù)列的表格線,這是我們所不需要的。解決問題的參考方法是:
①.可在Header Band中的表頭上方增加一文本框,讓該文本框足夠?qū)捛夷芨采w所有的數(shù)據(jù)列, 同時將垂直長度調(diào)整Header Band中的表頭上部平齊。
②.在文本框的Properties...窗口中,將該文本框的顯示內(nèi)容清為空,在Font標簽頁中將字體的背景顏色(Background)設置為與數(shù)據(jù)窗口的背景色相同,并在Position標簽頁中將其Layer(層次)修改為Foreound,單擊OK按鈕,馬上就能看出效果。