ADO 編程模型詳細資料
2024-07-21 02:11:28
供稿:網友
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 事件模型和異步操作。