資源描述:
《使用ADO訪問(wèn)數(shù)據(jù)庫(kù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第13章使用ADO訪問(wèn)數(shù)據(jù)庫(kù)13.1ASP與ADO13.2建立連接13.3Recordset對(duì)象13.4Command對(duì)象ASP提供了強(qiáng)大的訪問(wèn)數(shù)據(jù)庫(kù)的功能。用ASP訪問(wèn)數(shù)據(jù)庫(kù)所使用的是ADO(ActiveXDataObjects)組件。使用ADO編寫的ASP程序,不僅能夠訪問(wèn)Access數(shù)據(jù)庫(kù),能夠訪問(wèn)包括Oracle、MSSQLServer、Sybase等支持OLEDB、ODBC的數(shù)據(jù)庫(kù)。13.1ASP與ADO13.1.1ASP與數(shù)據(jù)庫(kù)通過(guò)ADO對(duì)象,ASP可以訪問(wèn)Oracle、Sybase、MSSQ
2、LServer、Access、FoxPro等各種支持ODBC或OLEDB的數(shù)據(jù)庫(kù)。也就是說(shuō),只要具有某種數(shù)據(jù)庫(kù)的ODBC或OLEDB驅(qū)動(dòng)程序,就可以通過(guò)ADO訪問(wèn)數(shù)據(jù)庫(kù)。ASP、ADO、OLEDB及各種數(shù)據(jù)庫(kù)之間的關(guān)系如圖13-1所示。13.1.2ADO的概念和結(jié)構(gòu)ODBC(OpenDatabaseConnectivity)是微軟公司開發(fā)的一套開放數(shù)據(jù)庫(kù)應(yīng)用程序的接口規(guī)范,是廣泛使用的數(shù)據(jù)庫(kù)接口。使用ODBC開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序的方法是建立ODBC數(shù)據(jù)源,通過(guò)ODBC接口函數(shù),提交SQL語(yǔ)句并接收?qǐng)?zhí)行SQL
3、命令的結(jié)果。數(shù)據(jù)庫(kù)的底層操作由各個(gè)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序完成。OLEDB是以ActiveX技術(shù)為基礎(chǔ)的數(shù)據(jù)訪問(wèn)技術(shù)標(biāo)準(zhǔn)。OLEDB基于組件模型;可以訪問(wèn)多種格式的數(shù)據(jù),包括數(shù)據(jù)庫(kù)的數(shù)據(jù)和非數(shù)據(jù)庫(kù)的數(shù)據(jù)。OLEDB標(biāo)準(zhǔn)的具體實(shí)現(xiàn)是一組API函數(shù)。使用OLEDBAPI,可以編寫能夠訪問(wèn)符合OLEDB標(biāo)準(zhǔn)的任何數(shù)據(jù)源應(yīng)用程序。為了使各種流行的編程語(yǔ)言都能編寫符合OLEDB標(biāo)準(zhǔn)的應(yīng)用程序,微軟公司在OLEDBAPI之上提供了一種面向?qū)ο蟮?、與語(yǔ)言無(wú)關(guān)的應(yīng)用程序編寫接口,就是ADO。ADO是一項(xiàng)數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)。ADO具有
4、如下優(yōu)點(diǎn)。?對(duì)于程序設(shè)計(jì)者而言,ADO很容易掌握和使用。?ADO能夠被VisualBasic、Java、C++、VBScript及Jscript等程序設(shè)計(jì)語(yǔ)言所支持。?ADO能夠訪問(wèn)各種支持OLEDB的數(shù)據(jù)源,也就是說(shuō),通過(guò)ADO能夠訪問(wèn)具有OLEDB驅(qū)動(dòng)程序的數(shù)據(jù)源。?ADO允許C++的程序員訪問(wèn)OLEDB的底層接口。ADO包括7個(gè)對(duì)象及集合,其主要作用描述如下。(1)Connection對(duì)象Connection對(duì)象用于建立數(shù)據(jù)源與ADO應(yīng)用程序之間的連接。(2)Recordset對(duì)象Recordset
5、對(duì)象是ADO中最重要的對(duì)象之一,是對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢索后的數(shù)據(jù)記錄集。這個(gè)記錄集既可以是Command對(duì)象返回的查詢結(jié)果,也可以是直接運(yùn)行SQL命令產(chǎn)生的查詢結(jié)果。Recordset對(duì)象把數(shù)據(jù)庫(kù)檢索的結(jié)果封裝在一起,并通過(guò)它的方法和屬性提供一種方便、快捷地訪問(wèn)每條記錄、每個(gè)字段的方法。(3)Command對(duì)象Command對(duì)象用于定義數(shù)據(jù)庫(kù)的查詢動(dòng)作,一般使用SQL命令,也可以使用存儲(chǔ)過(guò)程。Command對(duì)象允許指定參數(shù),其參數(shù)通過(guò)Parameter對(duì)象賦值、使用。(4)Parameter對(duì)象Paramete
6、r對(duì)象的作用是將存儲(chǔ)過(guò)程和參數(shù)查詢所需的參數(shù)傳遞給Command對(duì)象。存儲(chǔ)過(guò)程是SQL語(yǔ)言的過(guò)程。一個(gè)Command對(duì)象上的所有Parameter對(duì)象構(gòu)成Parameters集合。(5)Field對(duì)象Field對(duì)象能夠使我們讀取記錄集(Recordset)對(duì)象中各個(gè)字段的字段值。定義在一個(gè)Recordset對(duì)象上的所有Field對(duì)象構(gòu)成Fields集合。(6)Property對(duì)象Property對(duì)象能夠指明一個(gè)ADO對(duì)象的屬性。所有的Property對(duì)象構(gòu)成Properties集合。這個(gè)集合與Connec
7、tion、Command、Recordset或Field對(duì)象相關(guān)聯(lián)。(7)Error對(duì)象Error對(duì)象的作用是返回一個(gè)數(shù)據(jù)庫(kù)連接(Connection)上產(chǎn)生的錯(cuò)誤。ADO對(duì)象及集合的關(guān)系如圖13-2所示。在ADO的對(duì)象中,Connection、Command和Recordset三個(gè)對(duì)象是頂層對(duì)象,也是最重要的對(duì)象。我們能夠單獨(dú)的創(chuàng)建、釋放這三個(gè)對(duì)象。而其他對(duì)象,盡管可以單獨(dú)創(chuàng)建對(duì)象,但是在使用之前,必須與有關(guān)的對(duì)象相關(guān)聯(lián)。Field、Error和Property對(duì)象在其雙親對(duì)象存在的情況下才存在,不能單
8、獨(dú)的創(chuàng)建這些對(duì)象。Connection對(duì)象用于建立應(yīng)用程序與數(shù)據(jù)庫(kù)的連接。在這個(gè)基礎(chǔ)之上,可以使用Command對(duì)象和Recordset對(duì)象對(duì)所連接的數(shù)據(jù)庫(kù)進(jìn)行各種操作。Command對(duì)象用于定義數(shù)據(jù)庫(kù)的查詢操作,主要采用SQL語(yǔ)言描述查詢動(dòng)作。Recordset對(duì)象對(duì)應(yīng)于Command對(duì)象的返回結(jié)果。當(dāng)然Recordset對(duì)象也可以直接建立一個(gè)Recordset,即不顯式地為Recordset創(chuàng)建Connection或Com