最近重裝了windows7 64位的,又裝了oracle10g64位,發現pb連oracle頻繁出錯。熬了一個通宵終於算是解決了。開發環境,除了數據庫服務,還要安裝32位的oracle客戶端,因爲pb是32位的。
添加一個系統級環境變量:
TNS_ADMIN D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN
默認安裝完客戶端,path裏第一個是D:\oracle\product\10.2.0\client_1\bin;
如果pb還是不能連接,刪掉監聽重新創建,重啓計算機看看。
直連方式有2種:
第一個:OLE連接方式
SQLCA.DBMS = "OLE DB"
SQLCA.LogPass = "si"
SQLCA.LogId = "si"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='OraOLEDB.Oracle',DATASOURCE='127.0.0.1:1521/orcl'"
第二個:直連
// Profile 實例
SQLCA.DBMS = "O10 Oracle10g (10.1.0)"
SQLCA.LogPass = "service"
SQLCA.ServerName = "172.10.10.2:1521/orcl"
SQLCA.LogId = "service"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PBCatalogOwner='service'"
發佈後的程序,在用戶機器上不用安裝oracle客戶端,直接把instantclient-basic-win32-10.2.0.5解壓縮,把裏面的dll文件拷貝到程序目錄下即可直接執行。如果不把這些dll文件拷貝過去,可能會出現找不到本地nls_lang的提示。
注意開發環境與投產客戶端的區別。