作為一個優秀的客戶端開發工具,powerbuilder必然需要與大型的數據庫相連接,盡管許多資料上都介紹了如何通過odbc或者powerbuilder自帶的db profile或者專用接口連接上數據庫,但仍然有許多使用者按此方法卻無法連接上數據庫,這方面的原因可能是powerbuilder本身的原因,比如在安裝powerbuilder時的選項、odbc的版本之類;也可能是在安裝客戶端的oracle、sybase、informix、sql server等軟件上的問題,下面就從最根本的odbc配置開始,教你一步步如何連接上數據庫。 odbc數據源的配置
進入控制面板,打開odbc數據源(32位),如圖1所示,點擊“add”按鈕,進入odbc數據源的配置面板,如圖2所示:
選擇“oracle odbc driver”一項,注意當前版本號為“8.00.0400”,如果你的操作系統中安裝的是oracle7,則相應的版本號會不同。提醒一點:在windows98操作系統上是無法安裝oracle8.0.4的(只能安裝oracle7.2.3),oracle8.0.5則沒有試過。因而會有一些使用者在windows98系統上無法正常配置odbc數據源,因為windows98本身自帶的odbc數據源已經比oracle7數據源版本要高,無論你怎樣配置odbc,系統總會提示你要安裝一個更高版本的oracle,自然你就無法配置odbc了,有一個解決方法就是用pb7第二張光盤上的odbc安裝程序覆蓋系統中的odbc,或者把你的操作系統改為windows95/97算了。
然后進入“oracle8 odbc driver setup”設置,在“data source name”一項中隨便輸入一個名字,在“data source service name”一欄中輸入oracle連接數據庫的字符串名,這可以在你安裝的oracle目錄中的tnsnames.ora文件中查看到(oracle7安裝路徑為“orawin95\network\ admin”;oracle8安裝路徑為“orawin95\net80\admin”),或者你通過“sql net easy configuration”新添加一個數據庫連接配置,將配置中的字符串填入即可,其他的就不必再填入,避免出現畫蛇添足之錯,反而連接不上數據庫了。 db profile數據源的配置
進入pb,打開db profile,如圖4所示,選擇odbc一項,點擊“new”,進入pb數據源的配置,如圖5所示。當然如果你之前沒有進行odbc的配置,你也可以在這里點擊“config odbc”進入之前你看到的odbc配置界面。
在“profile name”中自定義一個名字,然后從“data source”的下拉菜單中選擇你在odbc中已經配置好的數據源,輸入登錄數據庫所需要的用戶名與密碼,當然你認為沒有這個必要性的話可以不在這里輸入(主要是不要輕易讓人知道你數據庫的口令,不然問題就大了),到這一步為止,pb已經做完了所有數據庫連接的配置,剩下的就是連接上數據庫了。 pb for oracle專用接口的配置
同樣是進入pb,點擊db profile選項(這是對oracle7版本而言,如果是oracle8,相應的選項就是oracle8.0.4),看到上面的“073 oracle 7.3”選項沒有,點擊一下,再按“new”進入圖7的界面,“profile name”一欄隨意填,“server”一欄填寫時要注意,oracle7版本一定要在數據連接字符串前加上@,否則不能連接上pb數據庫,oracle8版本則不必加上@,其他的設置就可以不用了。
以上三種pb連接數據庫的方法其實十分簡單,但是初學者卻又會經常出錯,在這里只是想作為一種拋磚引玉之用,希望廣大初學者通過本文對pb數據源配置能夠有一定的了解。下面再對oracle連接數據庫的配置文件tnsnames.ora簡單說明一下,“tnsnames.ora”文件其實是通過“sql net easy configuration”初始化配置后的參數文件,如果你不想通過“sql net easy configuration”進行配置,你只需要把你先前已有的“tnsnames.ora”文件放入oracle的admin目錄中,覆蓋現有的文件就可以了,當然你也可以再自己添加數據庫連接字符串。通常,一個“tnsnames.ora”文件內容如下: ······kf.world = (description = (address_list = (address = (community = tcp.world) (protocol = tcp) (host = 136.12.145.5) (port = 1521) ) (address = (community = tcp.world) (protocol = tcp) (host = 136.12.145.5) (port = 1526) ) ) (connect_data = (sid = sid3) ) )······
其中最要的是第一項和最后一項(這里是以tcp/ip網絡連接,大多數用戶都是以此連接),host一欄是主機地址,“connect_data = (sid = sid3)”中的sid3是連接主機數據庫的字符串,你要修改這幾項就可以了。另外談談如何讓英文版的oracle7顯示中文,其實很簡單,只要將注冊表“hkey_local_machine\ software\oracle\nls_lang”中的值改為如下值就可以了“ simplified chinese_china.zhs16cgb231280”。