文章詳情頁(yè)
Oracle數(shù)據(jù)庫(kù)中通過(guò)ADO數(shù)據(jù)存取分析
瀏覽:5日期:2023-11-12 11:15:35
ADO是Active Data Object的縮寫(xiě),稱(chēng)為ActiveX數(shù)據(jù)對(duì)象。利用ADO對(duì)象,通過(guò)ODBC驅(qū)動(dòng)程序或OLE DB連接字符串,可實(shí)現(xiàn)對(duì)任意數(shù)據(jù)庫(kù)的存取和訪(fǎng)問(wèn)。 OLE DB是微軟用來(lái)替代ODBC的一種數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)技術(shù)。是一種對(duì)關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)均有效的一種數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)技術(shù)。 ADO提供了7個(gè)獨(dú)立的對(duì)象,利用這些對(duì)象,可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的存取和訪(fǎng)問(wèn): ·Connection 連接對(duì)象。 ·Command 命令對(duì)象,利用命令對(duì)象可執(zhí)行一個(gè)SQL存儲(chǔ)過(guò)程或有參數(shù)的查詢(xún)。 ·Parameter 參數(shù)對(duì)象。 ·Recordset 記錄集對(duì)象,代表從數(shù)據(jù)表中通過(guò)查詢(xún)所獲得的一組記錄。通過(guò)該對(duì)象的方法和屬性,可實(shí)現(xiàn)對(duì)記錄的存取和操作。 ·Field 字段對(duì)象,代表記錄集中的一個(gè)字段。Fields為字段集合,代表一條記錄的全部字段。 ·Property 屬性對(duì)象。 ·Error 錯(cuò)誤對(duì)象。 Connection,Command和Recordset是整個(gè)ADO的核心,通過(guò)Connection對(duì)象與一個(gè)數(shù)據(jù)庫(kù)建立連接,然后利用Command對(duì)象執(zhí)行查詢(xún),從而返回查詢(xún)結(jié)果,并將結(jié)果(記錄集)存入Recordset對(duì)象中,利用服務(wù)器端腳本,通過(guò)訪(fǎng)問(wèn)Recordset對(duì)象,便可獲得查詢(xún)到的記錄內(nèi)容。 另外,利用Connection對(duì)象的Execute方法和Recordset對(duì)象的Open方法,也可執(zhí)行一個(gè)查詢(xún),返回一個(gè)記錄集。 ODBC數(shù)據(jù)源的用戶(hù)數(shù)據(jù)源,系統(tǒng)數(shù)據(jù)源和文件數(shù)據(jù)源。用戶(hù)和系統(tǒng)DSN存儲(chǔ)在WindowsNT注冊(cè)表中,系統(tǒng)DSN可被登錄的所有用戶(hù)訪(fǎng)問(wèn)和使用,用戶(hù)DSN只能提供特定的用戶(hù)訪(fǎng)問(wèn)和使用。 文件DSN是存儲(chǔ)在一個(gè)擴(kuò)展名為.dsn的文本文件中,可供多個(gè)用戶(hù)訪(fǎng)問(wèn)和使用,并可實(shí)現(xiàn)復(fù)制,通用性強(qiáng),一般采用此方式。 ADO連接對(duì)象 連接對(duì)象在使用前必須先創(chuàng)建該對(duì)象的實(shí)例: Set 實(shí)例名=Server.CreateObject('ADODB.Connection') 連接對(duì)象的方法: ·Open方法 連接對(duì)象.Open 數(shù)據(jù)源名 連接字符串 帶參數(shù)調(diào)用Open方法時(shí),其參數(shù)實(shí)質(zhì)是傳遞給連接對(duì)象的ConnectionString屬性的。因此,可事先設(shè)置ConnectionString屬性的值,然后再調(diào)用不帶參數(shù)的Open方法。 ·Close方法 連接對(duì)象.Close 釋放:Set conn=Nothing ·Execute方法 該方法用于執(zhí)行SQL語(yǔ)句。根據(jù)SQL語(yǔ)句執(zhí)行后是否返回記錄集,該方法的使用格式分為以下兩種: 1.執(zhí)行SQL查詢(xún)語(yǔ)句時(shí),將返回查詢(xún)得到的記錄集。 用法為: Set 對(duì)象變量名=連接對(duì)象.Execute('SQL 查詢(xún)語(yǔ)言') Execute方法調(diào)用后,會(huì)自動(dòng)創(chuàng)建記錄集對(duì)象,并將查詢(xún)結(jié)果存儲(chǔ)在該記錄對(duì)象中,通過(guò)Set方法,將記錄集賦給指定的對(duì)象保存,以后對(duì)象變量就代表了該記錄集對(duì)象。 2.執(zhí)行SQL的操作性語(yǔ)言時(shí),沒(méi)有記錄集的返回。 此時(shí)用法為: 連接對(duì)象.Execute 'SQL 操作性語(yǔ)句' [, RecordAffected][, Option] ·RecordAffected 為可選項(xiàng),此出可放置一個(gè)變量,SQL語(yǔ)句執(zhí)行后,所生效的記錄數(shù)會(huì)自動(dòng)保存到該變量中。通過(guò)訪(fǎng)問(wèn)該變量,就可知道SQL語(yǔ)句隊(duì)多少條記錄進(jìn)行了操作。 ·Option 可選項(xiàng),該參數(shù)的取值通常為adCMDText,它用于告訴ADO,應(yīng)該將Execute方法之后的第一個(gè)字符解釋為命令文本。通過(guò)指定該參數(shù),可使執(zhí)行更高效。 ·BeginTrans、RollbackTrans、CommitTrans方法 這三個(gè)方法是連接對(duì)象提供的用于事務(wù)處理的方法。BeginTrans用于開(kāi)始一個(gè)事物;RollbackTrans用于回滾事務(wù);CommitTrans用于提交所有的事務(wù)處理結(jié)果,即確認(rèn)事務(wù)的處理。 事務(wù)處理可以將一組操作視為一個(gè)整體,只有全部語(yǔ)句都成功執(zhí)行后,事務(wù)處理才算成功;若其中有一個(gè)語(yǔ)句執(zhí)行失敗,則整個(gè)處理就算失敗,并恢復(fù)到處里前的狀態(tài)。 BeginTrans和CommitTrans用于標(biāo)記事務(wù)的開(kāi)始和結(jié)束,在這兩個(gè)之間的語(yǔ)句,就是作為事務(wù)處理的語(yǔ)句。判定事務(wù)處理是否成功,可通過(guò)連接對(duì)象的Error集合來(lái)實(shí)現(xiàn),若Error集合的成員個(gè)數(shù)不為0,則說(shuō)明有錯(cuò)誤發(fā)生,事務(wù)處理失敗。Error集合中的每一個(gè)Error對(duì)象,代表一個(gè)錯(cuò)誤信息。 另外,利用SQL本身所提供的事務(wù)處理語(yǔ)句,通過(guò)編寫(xiě)存儲(chǔ)過(guò)程,然后利用ADO命令對(duì)象的相關(guān)方法,通過(guò)調(diào)用執(zhí)行存儲(chǔ)過(guò)程,也可實(shí)現(xiàn)事務(wù)。
標(biāo)簽:
Oracle
數(shù)據(jù)庫(kù)
排行榜
