關(guān)于ADO.NET Connection對(duì)象揭秘
大家都知道ADO.NET是訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的一種技術(shù),現(xiàn)在用的人也特別的多,本人就特別喜歡用這個(gè)技術(shù),我們大家經(jīng)常聽(tīng)到說(shuō)我的我們的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)類(lèi)怎么怎么強(qiáng)大而且支持多數(shù)據(jù)庫(kù),現(xiàn)在的大家做的項(xiàng)目里用的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)類(lèi)庫(kù)我想也都是支持多數(shù)據(jù)庫(kù)吧,支持到什么程度我就不知道了。
#T#可能只是那么想也是那么設(shè)計(jì)的,要支持多數(shù)據(jù)庫(kù),要能支持多數(shù)據(jù)庫(kù),大都是做項(xiàng)目應(yīng)用系統(tǒng)而非產(chǎn)品,即使要用不同的數(shù)據(jù)庫(kù)了,基本上是吧上一個(gè)項(xiàng)目全COPY過(guò)來(lái),修修改改OK了。產(chǎn)品可能就不一樣了,那才可能要支持真正的多數(shù)據(jù)庫(kù),才可能會(huì)面對(duì)真正的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)類(lèi)庫(kù)的多數(shù)據(jù)庫(kù)的實(shí)際檢驗(yàn)。ADO.NET2.0下增強(qiáng)了數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的功能,也就是工廠(chǎng)式類(lèi)庫(kù),提到工廠(chǎng)式數(shù)據(jù)庫(kù)訪(fǎng)問(wèn),網(wǎng)上可就多了,ADO.NET2.0增強(qiáng)的工廠(chǎng)式網(wǎng)上也很多了,都說(shuō)只要改動(dòng)webconfig里的數(shù)據(jù)庫(kù)連接就行了,其它什么地方都不用改了,看了幾篇都是點(diǎn)了下,不知道做過(guò)充分測(cè)試沒(méi)有,應(yīng)該說(shuō)在實(shí)際的多數(shù)據(jù)庫(kù)產(chǎn)品系統(tǒng)中,還要做很多修正,完善和測(cè)試的。
在默認(rèn)情況下,vc++不支持ado對(duì)象。如果要在程序中使用ado對(duì)象,需要使用#import命令將ado庫(kù)文件導(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庫(kù)包含三個(gè)基本接口 。即:_ConnectPtr,_CommandPtr,_RecordSetPtr接口。它們分別對(duì)應(yīng)Connection對(duì)象,Command 對(duì)象和RecordSet對(duì)象。
ADO.NET Connection對(duì)象
ADO.NET Connection對(duì)象代表與數(shù)據(jù)源的連接。在訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)時(shí),首先創(chuàng)建一個(gè)ADO.NET Connection對(duì)象,通過(guò)它建立到數(shù)據(jù)庫(kù)的連接。通常需要在頭文件中定義一個(gè)VConnection對(duì)象。
- _ConnnetionPtr m_pConnection;
創(chuàng)建Connection對(duì)象的方法如下:
- 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)生錯(cuò)誤之前執(zhí)行命令所用的時(shí)間,默認(rèn)為30s,Mode指定Connection對(duì)象修改數(shù)據(jù)的權(quán)限。State返回Connection屬性的狀態(tài),Open方法用于打開(kāi)到數(shù)據(jù)源的連接。Connection.Open(ConnectionString,UserId,Password,Options),Close方法(關(guān)閉數(shù)據(jù)庫(kù)的連接)。