不計(jì)其數(shù)的分布式系" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢(xún) 在線咨詢(xún)
18143453325 在線咨詢(xún)
所在位置: 首頁(yè) > 營(yíng)銷(xiāo)資訊 > 信息時(shí)代 > ActiveX數(shù)據(jù)對(duì)象(數(shù)據(jù)庫(kù))

ActiveX數(shù)據(jù)對(duì)象(數(shù)據(jù)庫(kù))

時(shí)間:2022-12-12 18:30:01 | 來(lái)源:信息時(shí)代

時(shí)間:2022-12-12 18:30:01 來(lái)源:信息時(shí)代

    ActiveX數(shù)據(jù)對(duì)象 : 利用數(shù)據(jù)庫(kù)嵌入式鏈接對(duì)象(OLE DB)提供的基本接口,對(duì)OLE DB加以封裝,形成簡(jiǎn)單易用的一組對(duì)象/方法/屬性集合,方便用戶(hù)快速開(kāi)發(fā)出數(shù)據(jù)庫(kù)應(yīng)用程序。
不計(jì)其數(shù)的分布式系統(tǒng)是使用Visual BASIC來(lái)生成組件的,由于OLE DB不能直接在Visual BASIC或ASP中使用。于是,微軟引入ADO。ADO的編程接口比原始的OLE DB開(kāi)發(fā)包更加豐富。雖然在C++應(yīng)用程序中使用ADO是完全可行的,但是使用OLE DB調(diào)用比使用ADO能更直接地到達(dá)數(shù)據(jù),所以在C++應(yīng)用程序中,不推薦使用ADO。
1. ADO的結(jié)構(gòu)
使用ADO的應(yīng)用系統(tǒng)結(jié)構(gòu)以及ADO與OLE DB、ODBC的關(guān)系如圖1所示,開(kāi)發(fā)人員可以通過(guò)微軟的ADO利用Oracle的OLE DB數(shù)據(jù)提供者實(shí)現(xiàn)任何COM客戶(hù)端(如Visual BASIC和Internet Information Server等)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。開(kāi)發(fā)人員也可以用C或C++編程訪問(wèn)OLE DB接口。


圖1 ADO與相關(guān)數(shù)據(jù)庫(kù)API關(guān)系示意圖


Oracle的OLE DB數(shù)據(jù)提供者直接用OCI連接,而不是用ODBC作為橋到達(dá)OCI,從而為ADO開(kāi)發(fā)人員提供更好的數(shù)據(jù)訪問(wèn)性能和可靠性。
作為連接應(yīng)用程序和OLE DB的橋梁,ADO的目標(biāo)是訪問(wèn)、編輯和更新數(shù)據(jù)源,ADO編程模型體現(xiàn)了為完成該目標(biāo)所必需的系列動(dòng)作的順序,即:
(1)連接到數(shù)據(jù)源,并可選擇開(kāi)始一個(gè)事務(wù)。
(2) 可選擇創(chuàng)建對(duì)象來(lái)表示SQL命令。
(3)可選擇在SQL命令中指定列、表和值作為變量參數(shù),優(yōu)化執(zhí)行。
(4)執(zhí)行命令。
(5)如果這個(gè)命令使數(shù)據(jù)按表中的行的形式返回,則將這些行存儲(chǔ)在易于檢查、操作或更改的緩存中。
(6)可選擇創(chuàng)建緩存視圖,以便能對(duì)數(shù)據(jù)進(jìn)行排序、篩選和定位。
(7)通過(guò)添加、刪除或更改行和列編輯數(shù)據(jù)。
(8)在適當(dāng)情況下,使用緩存中的更改內(nèi)容來(lái)更新數(shù)據(jù)源。
(9)如果使用了事務(wù),則可以接受或拒絕在完成事務(wù)期間所作的更改,結(jié)束事務(wù)。即可以確定對(duì)數(shù)據(jù)源的所有更改是否已成功或沒(méi)有發(fā)生。
在典型情況下,需要在編程模型中采用所有這些步驟(括號(hào)中是所涉及的對(duì)象)。但是,由于ADO有很強(qiáng)的靈活性,所以最后只需執(zhí)行部分模塊就能做一些有用的工作。例如: 將數(shù)據(jù)從文件直接存儲(chǔ)到緩存行,然后僅用ADO資源對(duì)數(shù)據(jù)進(jìn)行檢查。
2. ADO編程模型的關(guān)鍵元素
(1)連接: 通過(guò)連接可從應(yīng)用程序訪問(wèn)數(shù)據(jù)源,連接是交換數(shù)據(jù)所必需的環(huán)境。通過(guò)如Microsoft Internet Information Server作為媒介,應(yīng)用程序可直接(有時(shí)稱(chēng)為雙層系統(tǒng))或間接(有時(shí)稱(chēng)為三層系統(tǒng))訪問(wèn)數(shù)據(jù)源。對(duì)象模型使用Connection對(duì)象使連接概念得以具體化。“事務(wù)”用于界定在連接過(guò)程中發(fā)生的一系列數(shù)據(jù)訪問(wèn)操作的開(kāi)始和結(jié)束。ADO可明確事務(wù)中的操作,所造成的對(duì)數(shù)據(jù)源的更改是否成功發(fā)生。如果取消事務(wù)或它的一個(gè)失敗操作,則最終的結(jié)果將仿佛是事務(wù)中的操作均未發(fā)生,數(shù)據(jù)源將會(huì)保持事務(wù)開(kāi)始以前的狀態(tài)。對(duì)象模型無(wú)法清楚地體現(xiàn)出事務(wù)的概念,而是用一組Connection對(duì)象方法來(lái)表示。ADO訪問(wèn)來(lái)自O(shè)LE DB提供者的數(shù)據(jù)和服務(wù)。Connection對(duì)象用于指定專(zhuān)門(mén)的提供者和任意參數(shù)。例如,可對(duì)遠(yuǎn)程數(shù)據(jù)服務(wù)(remote data service,RDS)進(jìn)行顯式調(diào)用,或通過(guò)“Microsoft OLE DB Remoting Provider”進(jìn)行隱式調(diào)用。
(2)命令:通過(guò)已建立的連接發(fā)出的“命令”可以某種方式來(lái)操作數(shù)據(jù)源。一般情況下,命令可以在數(shù)據(jù)源中添加、刪除或更新數(shù)據(jù),或者在表中以行的格式檢索數(shù)據(jù)。對(duì)象模型用Command對(duì)象來(lái)體現(xiàn)命令概念。Command對(duì)象使ADO能夠優(yōu)化對(duì)命令的執(zhí)行。
(3)參數(shù):通常,命令需要的變量部分即“參數(shù)”可以在命令發(fā)布之前進(jìn)行更改。例如,可重復(fù)發(fā)出相同的數(shù)據(jù)檢索命令,但每一次均可更改指定的檢索信息。參數(shù)對(duì)執(zhí)行其行為類(lèi)似函數(shù)的命令非常有用,這樣就可知道命令是做什么的,但不必知道它如何工作。例如,要發(fā)出一項(xiàng)銀行過(guò)戶(hù)命令,從一方借出貸給另一方,可將要過(guò)戶(hù)的款額設(shè)置為參數(shù)。對(duì)象模型用Parameter對(duì)象來(lái)體現(xiàn)參數(shù)概念。
(4)記錄集: 如果命令是在表中按信息行返回?cái)?shù)據(jù)的查詢(xún)(行返回查詢(xún)),則這些行將會(huì)存儲(chǔ)在本地。對(duì)象模型將該存儲(chǔ)體現(xiàn)為Recordset對(duì)象。但是,不存在僅代表單獨(dú)一個(gè)Recordset行的對(duì)象。記錄集是在行中檢查和修改數(shù)據(jù)的主要方法。Recordset對(duì)象用于: 指定可以檢查的行、移動(dòng)行、指定移動(dòng)行的順序、添加/更改或刪除行、通過(guò)更改行更新數(shù)據(jù)源以及管理Recordset的總體狀態(tài)。
(5)字段: 一個(gè)記錄集行包含一個(gè)或多個(gè)“字段”。如果將記錄集看作二維網(wǎng)格,字段將排列構(gòu)成“列”。每一字段(列)都分別包含有名稱(chēng)、數(shù)據(jù)類(lèi)型和值的屬性,正是在該值中包含了來(lái)自數(shù)據(jù)源的真實(shí)數(shù)據(jù)。對(duì)象模型以Field對(duì)象體現(xiàn)字段。要修改數(shù)據(jù)源中的數(shù)據(jù),可在記錄集行中修改Field對(duì)象的值,對(duì)記錄集的更改最終被傳送給數(shù)據(jù)源。作為選項(xiàng),Connection對(duì)象的事務(wù)管理方法能夠可靠地保證更改要么全部成功,要么全部失敗。
(6)錯(cuò)誤: 錯(cuò)誤隨時(shí)可在應(yīng)用程序中發(fā)生,通常是由于無(wú)法建立連接、執(zhí)行命令或?qū)δ承顟B(tài)(例如,試圖使用沒(méi)有初始化的記錄集)的對(duì)象進(jìn)行操作。對(duì)象模型以Error對(duì)象體現(xiàn)錯(cuò)誤。任意給定的錯(cuò)誤都會(huì)產(chǎn)生一個(gè)或多個(gè)Error對(duì)象,隨后產(chǎn)生的錯(cuò)誤將會(huì)放棄先前的Error對(duì)象組。
(7)屬性: 每個(gè)ADO對(duì)象都有一組唯一的“屬性”來(lái)描述或控制對(duì)象的行為。屬性有兩種類(lèi)型: 內(nèi)置和動(dòng)態(tài)。內(nèi)置屬性是ADO對(duì)象的一部分并且隨時(shí)可用。動(dòng)態(tài)屬性則由特別的數(shù)據(jù)提供者添加到ADO對(duì)象的屬性集合中,僅在提供者被使用時(shí)才能存在。對(duì)象模型以Property對(duì)象體現(xiàn)屬性。
(8)集合: ADO提供“集合”,這是一種可方便地包含其他特殊類(lèi)型對(duì)象的對(duì)象類(lèi)型。使用集合方法可按名稱(chēng)(文本字符串)或序號(hào)(整型數(shù))對(duì)集合中的對(duì)象進(jìn)行檢索。ADO提供四種類(lèi)型的集合: ①Connection對(duì)象具有Errors集合,包含為響應(yīng)與數(shù)據(jù)源有關(guān)的單一錯(cuò)誤而創(chuàng)建的所有Error對(duì)象。②Command對(duì)象具有Parameters集合,包含應(yīng)用于Command對(duì)象的所有Parameter對(duì)象。③Recordset對(duì)象具有Fields集合,包含所有定義Recordset對(duì)象列的Field對(duì)象。④Connection、Command、Recordset和Field對(duì)象都具有Properties集合。它包含所有屬于各個(gè)包含對(duì)象的Property對(duì)象。
ADO對(duì)象擁有可在其上使用的諸如“整型”、“字符型”或“布爾型”這樣的普通數(shù)據(jù)類(lèi)型來(lái)設(shè)置或檢索值的屬性。然而,有必要將某些屬性看成是數(shù)據(jù)類(lèi)型“COLLECTION OBJECT”的返回值。相應(yīng)的,集合對(duì)象具有存儲(chǔ)和檢索適合該集合的其他對(duì)象的方法。例如,可認(rèn)為Recordset對(duì)象具有能夠返回集合對(duì)象的Properties屬性。該集合對(duì)象具有存儲(chǔ)和檢索描述Recordset性質(zhì)的Property對(duì)象的方法。
(9)事件:“事件”是對(duì)將要發(fā)生或已經(jīng)發(fā)生的某些操作的通知。一般情況下,可用事件高效地編寫(xiě)包含幾個(gè)異步任務(wù)的應(yīng)用程序。對(duì)象模型無(wú)法顯式體現(xiàn)事件,只能在調(diào)用事件處理程序例程時(shí)表現(xiàn)出來(lái)。在操作開(kāi)始之前調(diào)用的事件處理程序便于對(duì)操作參數(shù)進(jìn)行檢查或修改,然后取消或允許操作完成。操作完成后調(diào)用的事件處理程序在異步操作完成后進(jìn)行通知。多個(gè)操作經(jīng)過(guò)增強(qiáng)可以有選擇地異步執(zhí)行。例如,用于啟動(dòng)異步Recordset.Open()操作的應(yīng)用程序?qū)⒃诓僮鹘Y(jié)束時(shí)得到執(zhí)行完成事件的通知。
以上是對(duì)ADO編程模型的描述。ADO技術(shù)簡(jiǎn)單易行、應(yīng)用廣泛,是目前應(yīng)用程序訪問(wèn)Web數(shù)據(jù)庫(kù)的接口中的有效技術(shù),大量的ASP頁(yè)面使用ADO對(duì)象抽取數(shù)據(jù),從而為Web網(wǎng)站帶來(lái)動(dòng)態(tài)數(shù)據(jù)。

74
73
25
news

版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉