在開發資料庫應用程式時,設定 ADO 連線字串一直是讓開發者頭痛的問題。不同資料庫類型(ODBC、Oracle、SQL Server、Access)需要不同的連線字串格式,不僅難以記憶,而且當資料來源變更時,還得修改程式碼重新編譯。Microsoft 提供的通用資料連結檔案(Universal Data Link,*.udl)完美解決了這個問題,讓資料庫連線設定變得視覺化、標準化。
傳統方式下,開發者必須在程式碼中硬編碼連線字串,例如:
"Provider=MSDASQL;DSN=dsnName;UID=userName;PWD=userPassword;""Provider=MSDAORA;Data Source=serverName;User ID=userName;Password=userPassword;""Provider=SQLOLEDB;Data Source=serverName;Initial Catalog=databaseName;User ID=userName;Password=userPassword;""Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databaseName;User ID=userName;Password=userPassword;"這種方式不僅容易出錯,而且使用者無法自行修改連線設定。UDL 檔案將連線資訊外部化,程式只需引用檔案路徑即可:
_ConnectionPtr m_pDBConn;
m_pDBConn.CreateInstance(__uuidof(Connection));
m_pDBConn->ConnectionString = "File Name=c:\\mydir\\my_data1.udl";
m_pDBConn->Open("", "", "", NULL);
當資料來源變更時,使用者只需雙擊 UDL 檔案即可透過圖形介面重新設定,完全不需修改程式碼。
注意: Windows 2000 系統需先建立文字檔,再將副檔名改為 .udl。系統需安裝 MDAC(Microsoft Data Access Components),Windows 98 第二版及 Windows 2000 內建支援,最新版可至 Microsoft 官網下載。
ADO 為 COM 介面,建議在開啟連線時加入例外處理:
try {
m_pDBConn->Open("", "", "", NULL);
} catch (_com_error &e) {
// 處理例外
m_pDBConn = NULL; // 智慧指標設為 NULL 會自動釋放參考計數
}
正常結束時,呼叫 Close() 方法即可釋放連線資源。
UDL 檔案讓 ADO 連線設定脫離程式碼,實現了資料存取的透明性。開發者獲得統一的程式設計介面,使用者獲得視覺化的設定體驗,是建立可維護資料庫應用程式的最佳實踐之一。