ADO 編程模型詳細資料
最後更新:2017-02-28
來源:互聯網
上載者:User
ado|編程 ADO 編程模型詳細資料
以下元素是 ADO 編程模型中的關鍵區段:
串連
命令
參數
記錄集
欄位
錯誤
屬性
集合
事件
串連
通過“串連”可從應用程式訪問資料來源,串連是交換資料所必需的環境。通過如 Microsoft® Internet Information Server 作為媒介,應用程式可直接(有時稱為雙層系統)或間接(有時稱為三層系統)訪問資料來源。
物件模型使用 Connection 對象使串連概念得以具體化。
“事務”用於界定在串連過程中發生的一系列資料訪問操作的開始和結束。ADO 可明確事務中的操作造成的對資料來源的更改或者成功發生,或者根本沒有發生。
如果取消事務或它的一個操作失敗,則最終的結果將彷彿是事務中的操作均未發生,資料來源將會保持事務開始以前的狀態。
物件模型無法清楚地體現出事務的概念,而是用一組 Connection 對象方法來表示。
ADO 訪問來自 OLE DB 提供者的資料和服務。Connection 對象用於指定專門的提供者和任意參數。例如,可對遠端資料服務 (RDS) 進行顯式調用,或通過“Microsoft OLE DB Remoting Provider”進行隱式調用。(請參閱 RDS 教程通過“MS Remote Provider”調用 RDS 第二步的範例)
命令
通過已建立的串連發出的“命令”可以某種方式來操作資料源。一般情況下,命令可以在資料來源中添加、刪除或更新資料,或者在表中以行的格式檢索資料。
物件模型用 Command 對象來體現命令概念。Command 對象使 ADO 能夠最佳化對命令的執行。
參數
通常,命令需要的變數部分即“參數”可以在命令發布之前變更。例如,可重複發出相同的資料檢索命令,但每一次均可更改指定的檢索資訊。
參數對執行其行為類似函數的命令非常有用,這樣就可知道命令是做什麼的,但不必知道它如何工作。例如,可發出一項銀行過戶命令,從一方借出貸給另一方。可將要過戶的款額設定為參數。
物件模型用 Parameter 對象來體現參數概念。
記錄集
如果命令是在表中按資訊行返回資料的查詢(行返回查詢),則這些行將會儲存在本地。
物件模型將該儲存體現為 Recordset 對象。但是,不存在僅代表單獨一個 Recordset 行的對象。
記錄集是在行中檢查和修改資料最主要的方法。Recordset 對象用於: 指定可以檢查的行。
移動行。
指定移動行的順序。
添加、更改或刪除行。
通過更改行更新資料來源。
管理 Recordset 的總體狀態。
欄位
一個記錄集行包含一個或多個“欄位”。如果將記錄集看作二維網格,欄位將排列構成“列”。每一欄位(列)都分別包含有名稱、資料類型和值的屬性,正是在該值中包含了來自資料來源的真實資料。
物件模型以 Field 對象體現欄位。
要修改資料來源中的資料,可在記錄集行中修改 Field 對象的值,對記錄集的更改最終被傳送給資料來源。作為選項,Connection 對象的交易管理方法能夠可靠地保證更改要麼全部成功,要麼全部失敗。
錯誤
錯誤隨時可在應用程式中發生,通常是由於無法建立串連、執行命令或對某些狀態(例如,試圖使用沒有初始化的記錄集)的對象進行操作。
物件模型以 Error 對象體現錯誤。
任意給定的錯誤都會產生一個或多個 Error 對象,隨後產生的錯誤將會放棄先前的 Error 對象組。
屬性
每個 ADO 對象都有一組唯一的“屬性”來描述或控制對象的行為。
屬性有兩種類型:內建和動態。內建屬性是 ADO 對象的一部分並且隨時可用。動態屬性則由特別的資料提供者添加到 ADO 對象的屬性集合中,僅在提供者被使用時才能存在。
物件模型以 Property 對象體現屬性。
集合
ADO 提供“集合”,這是一種可方便地包含其他特殊類型對象的物件類型。使用集合方法可按名稱(文本字串)或序號(整型數)對集合中的對象進行檢索。
ADO 提供四種類型的集合: Connection 對象具有 Errors 集合,包含為響應與資料來源有關的單一錯誤而建立的所有 Error 對象。
Command 對象具有 Parameters 集合,包含應用於 Command 對象的所有 Parameter 對象。
Recordset 對象具有 Fields 集合,包含所有定義 Recordset 對象列的 Field 對象。
另外,Connection、Command、Recordset 和 Field 對象都具有 Properties 集合。它包含所有屬於各個包含對象的 Property 對象。
ADO 對象擁有可在其上使用的諸如“整型”、“字元型”或“布爾型”這樣的普通資料類型來設定或檢索值的屬性。然而,有必要將某些屬性看成是資料類型“COLLECTION OBJECT”的傳回值。相應的,集合對象具有儲存和檢索適合該集合的其他對象的方法。
例如,可認為 Recordset 對象具有能夠返回集合對象的 Properties 屬性。該集合對象具有儲存和檢索描述 Recordset 性質的 Property 對象的方法。
事件
“事件”是對將要發生或已經發生的某些操作的通知。一般情況下,可用事件高效地編寫包含幾個非同步任務的應用程式。
物件模型無法顯式體現事件,只能在呼叫事件處理常式常式時表現出來。
在操作開始之前調用的事件處理常式便於對巨集指令引數進行檢查或修改,然後取消或允許操作完成。
操作完成後調用的事件處理常式在非同步作業完成後進行通知。多個操作經過增強可以有選擇地非同步執行。例如,用於啟動非同步 Recordset.Open 操作的應用程式將在操作結束時得到執行完成事件的通知。 有關事件的詳細資料,請參閱 ADO 事件模型和非同步作業。