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