ADO簡(jiǎn)介,什么是ADO,ADO是什么意思
1、ADO是什么
ADO(ActiveX Data Object)是OLE DB數(shù)據(jù)訪問方式 的一種主要對(duì)象模型。
2、ADO能做什么
?ADO最普遍的用法就是在關(guān)系數(shù)據(jù)庫(kù)中查詢一個(gè)表 或多個(gè)表,然后在應(yīng)用程序中檢索并顯示查詢結(jié) 果,可能還允許用戶更改并保存數(shù)據(jù)。通過編程 使用ADO還可執(zhí)行其他任務(wù),包括:
?使用SQL查詢數(shù)據(jù)庫(kù)并顯示結(jié)果。
?通過Internet訪問文件存儲(chǔ)中的信息。
?操作電子郵件系統(tǒng)中的消息和文件夾。
?將來自數(shù)據(jù)庫(kù)的數(shù)據(jù)保存在XML文件中。
?允許用戶查看數(shù)據(jù)庫(kù)表中的數(shù)據(jù)并進(jìn)行更改。
?創(chuàng)建并重新使用參數(shù)化的數(shù)據(jù)庫(kù)命令。
?執(zhí)行存儲(chǔ)過程。
?動(dòng)態(tài)創(chuàng)建稱作Recordset的靈活結(jié)構(gòu),以保持、瀏覽和操作數(shù)據(jù)。
?執(zhí)行事務(wù)型數(shù)據(jù)庫(kù)操作。
?根據(jù)運(yùn)行時(shí)條件,對(duì)數(shù)據(jù)庫(kù)信息的本地副本進(jìn)行過濾和排序。
?創(chuàng)建并操作來自數(shù)據(jù)庫(kù)的分級(jí)結(jié)果。
?將數(shù)據(jù)庫(kù)字段綁定到數(shù)據(jù)識(shí)別組件。
?創(chuàng)建遠(yuǎn)程的、斷開連接的Recordsets。
3、ADO 對(duì)象模型
ADO對(duì)象模型包含九個(gè)對(duì)象和四個(gè)集合,如圖所示,灰色背景的是對(duì)象,白色背景的是集合
對(duì)象:
?Connection對(duì)象代表與數(shù)據(jù)源的唯一會(huì)話。在使用 客戶端/服務(wù)器數(shù)據(jù)庫(kù)系統(tǒng)的情況下,該對(duì)象可以 等價(jià)于與服務(wù)器的實(shí)際網(wǎng)絡(luò)連接。Connection對(duì)象 的某些集合、方法或?qū)傩钥赡懿豢捎茫@取決于提 供者支持的功能。
?Command對(duì)象用來定義針對(duì)數(shù)據(jù)源運(yùn)行的具體命 令,例如 SQL 查詢。
?Recordset對(duì)象表示從基本表或命令執(zhí)行的結(jié)果所 得到的整個(gè)記錄集合。所有Recordset對(duì)象均由記 錄(行)和字段(列)組成。
?Record對(duì)象表示來自Recordset或提供者的一行數(shù) 據(jù)。該記錄可以表示數(shù)據(jù)庫(kù)記錄或某些其他類型的 對(duì)象(例如文件或目錄),這取決于提供者。
?Stream對(duì)象表示二進(jìn)制或文本數(shù)據(jù)的數(shù)據(jù)流。例 如,XML 文檔可以加載到數(shù)據(jù)流中以便進(jìn)行命令 輸入,也可以作為查詢結(jié)果從某些提供者那里返 回。Stream對(duì)象可用于對(duì)包含這些數(shù)據(jù)流的字段 或記錄進(jìn)行操作。
?Parameter對(duì)象表示與基于參數(shù)化查詢或存儲(chǔ)過程 的Command對(duì)象相關(guān)聯(lián)的參數(shù)。
?Field對(duì)象表示一列普通數(shù)據(jù)類型數(shù)據(jù)。每個(gè) Field對(duì)象對(duì)應(yīng)于Recordset中的一列。
?Property對(duì)象表示由提供者定義的ADO對(duì)象的特征。 ADO對(duì)象有兩種類型的屬性:內(nèi)置屬性和動(dòng)態(tài)屬性。 內(nèi)置屬性是指那些已在ADO中實(shí)現(xiàn)并且任何新對(duì)象 可以立即使用的屬性。Property對(duì)象是基本提供 者所定義的動(dòng)態(tài)屬性的容器。
?Error對(duì)象包含有關(guān)數(shù)據(jù)訪問錯(cuò)誤的詳細(xì)信息,這 些錯(cuò)誤與涉及提供者的單個(gè)操作有關(guān)。
集合:
?Fields集合包含Recordset或Record對(duì)象的 所有Field對(duì)象。
?Properties集合包含對(duì)象特定實(shí)例的所有 Property對(duì)象。
?Parameters集合包含Command對(duì)象的所有 Parameter對(duì)象。
?Errors集合包含為響應(yīng)單個(gè)提供者相關(guān)失 敗而創(chuàng)建的所有Error對(duì)象。
4、Visual C++中使用ADO
默認(rèn)情況下,Visual C++不支持ADO對(duì)象。要在程序中使用ADO對(duì)象,需要將ADO庫(kù)文 件導(dǎo)入到工程中 #import “c:program filescommon filessystemado msado15.dll” no_namespace rename (“EOF”, “adoEOF”) 。
ADO庫(kù)包含三個(gè)基本接口,即_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。它們分別對(duì)應(yīng)Connection對(duì)象、Command對(duì)象和 Recordset對(duì)象,這三個(gè)對(duì)象也是最常用的對(duì)象。
Connection 對(duì)象主要屬性、方法:
主要屬性:
ConnectionString:指示用于建立到數(shù)據(jù)源的連接的信息。
ConnectionTimeout:指示建立連接期間在終止嘗試和產(chǎn)生錯(cuò)誤之前需要等待的時(shí)間。
Mode:指示Connection對(duì)象中修改數(shù)據(jù)的有效權(quán)限,如表。
常量
值
說明
adModeRead
1
指示只讀權(quán)限。
adModeReadWrite
3
指示讀/寫權(quán)限。
adModeRecursive
0x400000
與其他*ShareDeny* 值一起使用
adModeShareDenyNone
16
允許其他人以任何權(quán)限打開連接。
adModeShareDenyRead
4
禁止其他人以讀權(quán)限打開連接。
adModeShareDenyWrite
8
禁止其他人以寫權(quán)限打開連接。
adModeShareExclusive
12
禁止其他人打開連接。
adModeUnknown
0
默認(rèn)值。指示尚未設(shè)置或不能確定權(quán)限。
adModeWrite
2
指示只寫權(quán)限。
Connection 對(duì)象主要屬性、方法:
State:指示該對(duì)象狀態(tài)是打開的還是關(guān)閉的,如表。
常量
值
說明
adStateClosed
0
指示對(duì)象已關(guān)閉。
adStateOpen
1
指示對(duì)象已打開。
adStateConnecting
2
指示對(duì)象正在連接。
adStateExecuting
4
指示對(duì)象正在執(zhí)行命令。
adStateFetching
8
指示正在檢索對(duì)象的行。
主要方法:
Open:打開到數(shù)據(jù)源的連接。
Close:關(guān)閉打開的對(duì)象和任何相關(guān)的對(duì)象。
Execute:執(zhí)行指定的查詢、SQL 語句、存儲(chǔ)過程或提供者特有的文本。
Command對(duì)象主要屬性、方法:
主要屬性:
ActiveConnection :指示對(duì)象當(dāng)前所屬的 Connection 對(duì)象。
CommandText :指示要根據(jù)提供者發(fā)出的命令文本。
主要方法:
Execute:執(zhí)行CommandText 屬性中指定的查詢、SQL 語句或存 儲(chǔ)過程。
RecordSet 對(duì)象主要屬性、方法:
主要屬性:
AbsolutePosition:指示Recordset對(duì)象的當(dāng)前記錄的序號(hào)位置。
BOF 和EOF :指示當(dāng)前記錄位置位于 Recordset 對(duì)象的第一個(gè) 記錄之前和最后一個(gè)記錄之后。
MaxRecords:指示由查詢返回給Recordset 的最大記錄數(shù)目。
主要方法:
Move:在Recordset 對(duì)象中移動(dòng)當(dāng)前記錄的位置。
MoveFirst、MoveLast、MoveNext、MovePrevious:移動(dòng)到指定的 Recordset 對(duì)象中的第一個(gè)、最后一個(gè)、下一個(gè)或上一個(gè) 記錄并使其成為當(dāng)前記錄。
Open:打開游標(biāo),該游標(biāo)表示基本表中的記錄、查詢的結(jié)果或以前保存的 Recordset。
評(píng)論