關(guān)于ADO.NET Connection對象揭秘
大家都知道ADO.NET是訪問數(shù)據(jù)庫的一種技術(shù),現(xiàn)在用的人也特別的多,本人就特別喜歡用這個技術(shù),我們大家經(jīng)常聽到說我的我們的數(shù)據(jù)庫訪問類怎么怎么強(qiáng)大而且支持多數(shù)據(jù)庫,現(xiàn)在的大家做的項(xiàng)目里用的數(shù)據(jù)庫訪問類庫我想也都是支持多數(shù)據(jù)庫吧,支持到什么程度我就不知道了。
#T#可能只是那么想也是那么設(shè)計(jì)的,要支持多數(shù)據(jù)庫,要能支持多數(shù)據(jù)庫,大都是做項(xiàng)目應(yīng)用系統(tǒng)而非產(chǎn)品,即使要用不同的數(shù)據(jù)庫了,基本上是吧上一個項(xiàng)目全COPY過來,修修改改OK了。產(chǎn)品可能就不一樣了,那才可能要支持真正的多數(shù)據(jù)庫,才可能會面對真正的數(shù)據(jù)庫訪問類庫的多數(shù)據(jù)庫的實(shí)際檢驗(yàn)。ADO.NET2.0下增強(qiáng)了數(shù)據(jù)庫訪問的功能,也就是工廠式類庫,提到工廠式數(shù)據(jù)庫訪問,網(wǎng)上可就多了,ADO.NET2.0增強(qiáng)的工廠式網(wǎng)上也很多了,都說只要改動webconfig里的數(shù)據(jù)庫連接就行了,其它什么地方都不用改了,看了幾篇都是點(diǎn)了下,不知道做過充分測試沒有,應(yīng)該說在實(shí)際的多數(shù)據(jù)庫產(chǎn)品系統(tǒng)中,還要做很多修正,完善和測試的。
在默認(rèn)情況下,vc++不支持ado對象。如果要在程序中使用ado對象,需要使用#import命令將ado庫文件導(dǎo)入到工程中,代碼如下:
- #import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")
參數(shù)no_namespace表示不適用ado的名字空間。為了避免出現(xiàn)常量名沖突,將EOF改名為ADOBOF,將BOF改名為ADOBOF。ADO庫包含三個基本接口 。即:_ConnectPtr,_CommandPtr,_RecordSetPtr接口。它們分別對應(yīng)Connection對象,Command 對象和RecordSet對象。
ADO.NET Connection對象
ADO.NET Connection對象代表與數(shù)據(jù)源的連接。在訪問數(shù)據(jù)庫時,首先創(chuàng)建一個ADO.NET Connection對象,通過它建立到數(shù)據(jù)庫的連接。通常需要在頭文件中定義一個VConnection對象。
- _ConnnetionPtr m_pConnection;
創(chuàng)建Connection對象的方法如下:
- m_pConnection.CreateInstance("ADODB.Connection")
ConnectionString屬性
- m_pConnection->ConnectionString="Provider=SQLOLEDB.1;Password=sa;UserId=sa;Initial Catalog=UserMan;Data Source=localHost;"
ConnectionTimeout終止嘗試和產(chǎn)生錯誤之前執(zhí)行命令所用的時間,默認(rèn)為30s,Mode指定Connection對象修改數(shù)據(jù)的權(quán)限。State返回Connection屬性的狀態(tài),Open方法用于打開到數(shù)據(jù)源的連接。Connection.Open(ConnectionString,UserId,Password,Options),Close方法(關(guān)閉數(shù)據(jù)庫的連接)。