Vb.net和C#開發時我們學習過用配置文件來保存數據庫連接的屬性,這樣可以方便我們更換移植數據庫,提高軟件的生存能力。那麼Pb9.0也有類似的機制來實現,即.ini文件。
什麼是.ini文件?
.ini文件是InitializationFile的縮寫,即初始化文件,是windows的系統配置文件所採用的存儲格式。ini文件有節、鍵、值構成。其中節是區分標誌,因爲一般初始化文件需被程序不同的模塊所公用,用節爲不同的模塊做出標記,用中括號([])表示。然後鍵值對存儲屬性。ini文件和配置文件提供了一樣的功能。下圖是一個實例:
使用機制
PB9.0提供了一個函數:ProfileString,用來讀取配置文件中的內容。其使用格式如下:ProfileString("filename","section",key","default")。四個參數分別爲:文件名,節,鍵,和在找不到信息時的反饋信息。這裏需要注意的是,需要把ini文件放在程序目錄下。將讀取到的值分別賦給對應的SQLCA對象的屬性,然後using sqlca就成了。
Ini文件的編輯
ini文件的結構簡單,可以自己手動去寫,新建一個文本文件然後保存爲.ini文件就好了。當然是要細心一些了。另外Pb9.0中可以生成ini文件,在用Dbprofile建立了數據庫連接的基礎上。步驟如下:
1)在PB中連接到目的數據庫,然後點擊右鍵,選擇“Export Profile(s)”,在彈出的“ExportProfile(s)”窗口中已經默認選中了當前連接的數據庫,直接點擊“OK”。
2)在彈出的“Select ProfileFile”窗口中選擇ini文件的路徑,一般就是程序的目錄下,填寫ini文件的名字,譬如STEPB,就會生成一個STEPB.ini的文件.重複一次,別忘了把.ini文件放到程序目錄下。
調用時的代碼
[plain] view plain copy
<span style="font-size:18px;">//從初始化文件中讀取SQLCA屬性,利用名爲STEPB的ODBC數據源鏈接數據庫
SQLCA.DBMS=ProfileString("STEPB.INI","Database","DBMS","")
SQLCA.Database=ProfileString("STEPB.INI","Database","DataBase","")
SQLCA.LogID=ProfileString("STEPB.INI","Database","LogID","")
SQLCA.LogPass=ProfileString("STEPB.INI","Database","LogPassWord","")
SQLCA.ServerName=ProfileString("STEPB.INI","Database","ServerName","")
SQLCA.UserID=ProfileString("STEPB.INI","Database","UserID","")
SQLCA.DBpass=ProfileString("STEPB.INI","Database","DatabasePassword","")
SQLCA.Lock=ProfileString("STEPB.INI","Database","Lock","")
SQLCA.DbParm=ProfileString("STEPB.INI","Database","DbParm","")
//鏈接數據庫
connect using SQLCA;
//對錯誤情況進行處理
if SQLCA.SQLCode<0 then //鏈接數據庫失敗
MessageBox("數據庫鏈接失敗!",SQLCA.SQLErrText,StopSign!,Ok!)
else
open(W_login) //數據庫鏈接成功,轉到登錄窗體
end if</span>
結語:ini文件的使用和之前的配置文件是一樣的功能,都是爲了方便的更換數據庫而將配置數據庫連接的屬性都獨立的程序外。那麼實際上ini文件的使用不僅僅這裏,有人提議說也可以將SQL語句存儲於ini文件中。但是因爲SQL語句使用的頻率很高而且對程序的安全影響也比較大,雖然說在程序的靈活性上可能會有所優化,但是對安全性的破壞還是比較嚴重,個人覺得。