VC++ ADO開發實踐之三 (轉)
在Visual C++中如何利用UDL來建立ADO連線
使用通用資料連線檔案(*.UDL,以下簡稱檔案)來建立ADO連線,可以和OC一樣視覺化地定義要連線的資料來源,從而實現資料訪問的透明性。
1.使用UDL檔案來建立ADO連線
建立ADO的連線,首先要設定ADO連線的ConnectionString屬性,該屬性提供所要連線的型別、資料所處、要訪問的資料庫和資料庫訪問的資訊。比較專業的方法是在ConnectionString中直接提供以上資訊,下面是訪問不同型別資料來源設定ConnectionString的標準:
訪問ODBC資料
"Provr=MSDA;DSN=dsnName;UID=userName;PWD=userPass;"
訪問資料庫
"Provider=MSDAORA;Data =serverName;User ID=userName; Password=userPassword;"
訪問MS SQL資料庫
"Provider=SQLOLEDB;Data Source=serverName;Initial Catalog=databaseName; User ID=userName;Password=userPassword;"
訪問ACCESS 資料庫
"Provider=.Jet.OLEDB.4.0;Data Source=databaseName;User ID=userName;Password=userPassword;"
上述的連線屬性設定標準隨著資料來源的型別不同而變化,常常不習慣這種設定方式,都希望有視覺化的資料來源設定方法。為此Microsoft提供了通用資料連線檔案(.UDL)來建立和測試ADO連線屬性。ADO連線物件可以很方便地使用UDL檔案來連線資料來源,下面例子使用my_data1.udl來建立ADO連線。
_ConnectionPtr m_pDBConn;
m_pDBConn.CreateInstance(__uuidof(Connection));
m_pDBConn->ConnectionString ="File Name=c:mydirmy_data1.udl";
m_pDBConn->Open("","","",NULL);
這樣一來無論資料來源如何變化,在軟體中都可以用統一的方法。當資料來源改變時,只要雙擊相應的udl檔案即可視覺化地設定資料來源,無需更改軟體。
因為ADO是COM介面,為了軟體的可靠性,開啟ADO連線時,可以加入異常處理程式碼。
try{
m_pDBConn->Open("","","",NULL);
}catch(_com_error &e){
//處理異常的程式碼
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
m_pDBConn=NULL;
}
因為_ConnectionPtr m_pDBConn是智慧指標,應在處理異常程式碼時將智慧指標設為NULL後將自動將引用計數降為0。
如果不出現異常,只要在使用完m_pDBConn,只要引用Close方法即可。
2.建立你所需的UDL檔案
在你所想建立UDL檔案的目錄中單擊右鍵,選擇從選單 新建|Microsoft 資料連線,然後將新建立的UDL檔案更改為你所希望的檔名(.UDL副檔名不能改變)。
注:如果操作是Window 2000,先建立一個文字檔案,再將該文字檔案的副檔名改為 "udl"。
然後雙擊所建立的UDL檔案,即視覺化地完成資料來源的設定。
使用UDL檔案必須在系統中先Microsoft MDAC,Win 98第二版,Win 2000中都自動包含了該,需要該元件最新版本時可以到Microsoft網站去。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-963060/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- VC++ ADO開發實踐之五 (轉)C++
- VC++ ADO開發實踐之六 (轉)C++
- VC++ ADO開發實踐之四 (轉)C++
- VC++ ADO開發實踐之七 (轉)C++
- 上位機開發之三菱Q系列PLC通訊實踐
- ADO 開發指南
- 資料庫綜合開發實踐 (轉)資料庫
- 利用VC++開發所見即所得的列印程式 (轉)
- 再談在VB中呼叫VC++開發的DLL (轉)C++
- 優酷鴻蒙開發實踐|多屏互動開發實踐鴻蒙
- EyeDropper 開發實踐
- kubernetes實踐之三十一:kubectl
- WebLogic的研究之三--開發、部署EJB(1) (轉)Web
- WebLogic的研究之三--開發、部署EJB(2) (轉)Web
- WebLogic的研究之三--開發、部署EJB(3) (轉)Web
- DirectShow系列講座之三——開發自己的Filter (轉)Filter
- VC++ 開發非常漂亮的介面C++
- VC++串列埠程式設計之簡訊應用開發(轉)C++串列埠程式設計
- Laravel 開發最佳實踐Laravel
- Laradock 開發實踐
- iOS開發-Block實踐iOSBloC
- JavaScript 開發最佳實踐JavaScript
- REST開發最佳實踐REST
- Docker進階與實踐之三:Docker映象Docker
- win7 64 VC++ ado方式連線access 連線字串Win7C++字串
- [敏捷開發實踐](0) 開始敏捷
- VC++中實現程式互斥執行 (轉)C++
- VC++實現撥號上網程式 (轉)C++
- kubernetes實踐之三十: SonarQube和SonarQube Runner
- kubernetes實踐之三十八:Pod排程
- kubernetes實踐之三十三:基本概念
- iOS開發實踐-OOM治理iOSOOM
- Flutter、iOS混合開發實踐FlutteriOS
- Electron 外掛開發實踐
- Scrum敏捷開發方法實踐Scrum敏捷
- iOS開發 - 動畫實踐系列iOS動畫
- 最佳實踐(1):安卓開發安卓
- 軟體開發最佳實踐