概述:某軟件是使用PowerBuild開發的,後台數據庫引擎是使用的Sybase SQL AnyWhere 5.5版本。缺省安裝只能在單機使用。通過本文介紹的方法,可以讓該軟件的客戶端軟件(Djpc.exe)和後台的數據庫引擎分別運行於不同的計算機上,通過網絡來傳遞數據。這樣數據庫引擎就可以為多台計算機提供服務。
關鍵:進行恰當的ODBC設定並配合一些命令行程序來分別啟動數據庫引擎和客戶端。
必要條件:無論是運行數據庫引擎計算機、運行該軟件客戶端或者其它需要使用數據庫引擎的計算機,都必須先安裝Sybase SQL AnyWhere 5.5版本。
(注:數據庫引擎可以和該軟件或者其它要使用該引擎的應用程序位於同一台計算機上)
需要用到的Sybase SQLAnywhere的組件(程序):
1.Dbsrv50.exe 這是Sybase SQL Anywhere的數據庫引擎;
2.DbClIEnt.exe 這是Sybase SQL Anywhere的客戶端程序,用來連接到數據庫引擎;
這些程序位於Sybase安裝文件夾的SQL Anywhere\Win32文件夾下。
需要用到的操作系統組件:
ODBC Administrator(位於控制面版的管理工具文件夾下)
重要提示:Sybase SQL Anywhere的各項設置中,包括數據源名稱,數據庫名稱等,都是大小寫敏感的。如果碰到命令正確但無法連接的情況時,請注意以下這些名稱的大小寫。
一、設置並運行數據庫引擎
在需要運行數據庫引擎的計算機上,打開ODBC Administrator面版,轉換到系統DSN
選擇添加,驅動程序類型選擇“Sybase SQL Anywhere”
點擊“完成”後,會自動出現Sybase SQL Anywhere ODBC的配置窗口:
數據源名稱設定為DJPC,用戶名和密碼分別是dba和sql,指定服務器名稱和數據庫名稱為DJPC,然後選擇數據庫文件,最後,點擊Option:
注意將“Start Command”從“dbEng50.exe”修改為“dbSrv50.exe”(前者是單機數據庫引擎,後者才是我們要的網絡數據庫引擎),然後在參數中寫上“-x NetBiOS”(意思是指定數據庫引擎僅使用NetBiOS命令來宣告服務器。經過測試,無法使用TCPIP,老是會說服務器名稱已經存在,不知何故),最後點擊OK,ODBC配置部分即告完成。
理論上,這樣配置了Sybase SQL Anywhere的數據庫引擎後,當有數據庫請求時,該引擎應該能夠自動啟動,但大多數情況下需要手工預先啟動該引擎才行:在cmd下運行:
其中,參數“-c 40M”指定引擎使用40兆的內存作為緩沖區(可根據需要進行調整,緩沖越大,性能越好。如果不指定該參數,那麼缺省的緩沖區只有2兆,性能非常低)。
二、設置客戶端連接
客戶端的ODBC設置仍是在ODBC Administrator中完成的,步驟和設置數據庫引擎類似,僅是配置的參數和所使用的Sybase SQL Anywhere的組件不同:(注意大小寫)
再看選項,設置完成。
當客戶端有對該ODBC的請求時,系統會自動運行DbClIEnt來連接數據庫引擎。