首先, 確認Open ClIEnt 已經安裝, 並正確配置, 且能夠通過wisql 或Sybase Advantage查詢SERVER端數據庫中的數據.
PowerBuilder連接不上Sybase數據庫, 主要原因有以下幾點:
1) locales.dat 未正確設置
locales.dat 是ClIEnt端字符集設置文件, 一般在c:\Sybase\locales\ 目錄下。若操作系統平台是Windows 95, 則修改[NT]節下的相關內容;若操作系統平台是Windows 3.x, 則修改[win3]節下的相關內容。
a、應該有一行有關中國的國別設置:
locale = chs, us_english, iso_1
b、ClIEnt端的缺省字符集設置應該和Server端的字符集設置一致。
本例中將ClIEnt端的缺省字符集設為iso_1:
locale = default, us_english, iso_1
2) 重裝SQL Server後未運行pbsyc.sql
pbsyc.sql用於在Sybase數據庫中創建PowerBuilder所需的系統表和存儲過程,它在PowerBuilder安裝盤的server目錄下。當PowerBuilder第一次連接數據庫之前,或Sybase重裝之後,需要在isql或Sybase Advantage中,用"sa"登錄到"master"數據庫,運行pbsyc.sql 。另外,若連接的是Adaptive Server 11.5,需要先對pbsyc.sql文件做如下改動:
將"@@"替換為"@",但保留"@@error"和"@@isolation"
3) PowerBuilder是32位的,但Open ClIEnt是16位的由於PowerBuilder需要通過Open ClIEnt實現與數據庫的連接,所以
Open ClIEnt必須與PowerBuilder同為32位,或同為16位。
4) 未安裝Sybase的直連接口Native Driver)或ODBC接口ODBC Driver) PowerBuilder需要通過Native Driver或ODBC Driver才能訪問數據庫,所以若需要訪問Sybase數據庫,Native Driver或ODBC Driver是必需的。
5) Open ClIEnt中定義的Server Name與PowerBuilder應用中SQLCA.ServerName 設置的值不一致。
6) 未將PowerBuilder的DLL庫的路徑名加到系統搜索路徑上由於PowerBuilder應用程序運行時需要一些DLL庫的支持,所以需要將PowerBuilder的DLL庫的路徑加到系統搜索路徑上。
下面是系統缺省的DLL庫安裝路徑:
長文件名安裝時:PB6.0)
c:\Program Files\Powersoft\Shared\
長文件名安裝時:PB5.0)
c:\Program Files\Common Files\Powersoft Shared\
短文件名安裝時:
c:\pwrs\sys32\