一、PowerBuilder與Sybase SQL Server的連接
若在連接時出現問題,必須要冷靜多思考。首先要檢查客戶端的情況,確認Open Client已經安裝,並正確配置。要注意OPen ClIEnt必須與PowerBuilder同為32位,或同為16位。
PB與Sybase連不上,常見的幾種錯誤現象及處理方法說明如下:
1.已連接上Sybase數據庫,但在PB的數據庫(database)畫板中卻看不到用戶已經定義過的表。
此時可打開isql或Sybase Advantage,用"sa"登錄到"master"數據庫,執行pbsyc.sql腳本文件(該文件位於PB安裝盤的server目錄)即可。值得一提的是,對Sybase Adaptive Server的版本號要加以注意,根據資料對有的相關項進行點改動。
2.在打開PB的項目畫板(Project)或庫畫板(Library)時,出現錯誤信息提示:"cannot locate source management dll"。
這個問題是因為在安裝PB時,選擇了安裝版本控制軟件(如PVCS)的接口,實際上該用戶的機器上並未安裝相應的版本控制軟件。
解決方法: 在PB的設置中,將版本控制軟件的接口去掉,具體操作步驟是,可在PB.ini文件中,找到[Library]節,將"SourceVendor= ..."這一行注釋去掉。
3.數據庫連接正常,但打開用戶表時若該表中有漢字則出現亂碼。
這個問題通常是由於客戶端的缺省字符集設置和服務器端的字符集設置不一致,應修改locales.dat文件(該文件位於Sybase安裝目錄的locales子目錄下)。如果在Windows95/98操作系統下,可修改[NT]節下的相關內容;若操作系統平台是Windows3.x,則修改[win3]節下的內容。在此節有一行文本為locale=default,us_english,is0_1,則說明客戶端的缺省字符集設為iso_1。開發中文管理信息系統一般建議將字符集改為cp85o,在服務器端必須要做相應的調整。
二、PB編程的幾點技巧
1.在數據窗口(Datawindow)中實現數據列自動折行。
PB軟件在市場上受用戶歡迎的原因之一,就是它的數據窗口功能很強,而且方便應用。
在使用Datawindow時,常會遇到某列的數據太長,不能同時顯示全部的情況。若采用自動水平滾動,操作起來又不夠簡便。有一種方法能實現列數據多行顯示(自動折行)。
具體步驟如下:
①.在Datawindow Panter中打開此DataWindow,在需設定自動折行的列上雙擊鼠標,彈開此列的屬性窗口。點Position標簽,選中Autosize Heigh多選框; 再選擇Edit標簽, 不選中Auto HorzScroll多選框;單擊OK按鈕,保存所做的修改。
②.點中Detail Band(即寫有Detail的灰色長帶),單擊鼠標右鍵,選擇PropertIEs...菜單項,選中Autosize Height多選框,單擊OK按鈕,保存所做的修改。
2.在數據窗口(Datawindow)中用Enter鍵代替Tab鍵在字段間移動。
其基本做法是: 選中該數據窗口,定義一用戶事件,在彈出的用戶事件定義窗口中,將Event ID與pbm_dwnprocessenter 相關聯,在該事件的腳本中增加下面兩行語句:
Send(Handle(this),256,9 Long(0,0)) (向系統發出處理TAB鍵的消息)
return 1 (忽略Enter鍵接下來應進行的缺省處理)
3.選用Grid數據窗口方式時避免表頭上方也出現表格線。
用Grid數據窗口方式能夠實現表格式報表輸出,但是如在表頭上方不加以控制或處理,它將出現Detail Band中各數據列的表格線,這是我們所不需要的。
解決問題的參考方法是:
①.可在Header Band中的表頭上方增加一文本框,讓該文本框足夠寬且能覆蓋所有的數據列, 同時將垂直長度調整Header Band中的表頭上部平齊。
②.在文本框的PropertIEs...窗口中,將該文本框的顯示內容清為空,在Font標簽頁中將字體的背景顏色(Background)設置為與數據窗口的背景色相同,並在Position標簽頁中將其Layer(層次)修改為Foreound,單擊OK按鈕,馬上就能看出效果。