ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)-第8章-利用ADO實(shí)現(xiàn)數(shù)據(jù)庫的_第1頁
ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)-第8章-利用ADO實(shí)現(xiàn)數(shù)據(jù)庫的_第2頁
ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)-第8章-利用ADO實(shí)現(xiàn)數(shù)據(jù)庫的_第3頁
ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)-第8章-利用ADO實(shí)現(xiàn)數(shù)據(jù)庫的_第4頁
ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)-第8章-利用ADO實(shí)現(xiàn)數(shù)據(jù)庫的_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第8章利用ADO實(shí)現(xiàn)數(shù)據(jù)庫的存取本章要點(diǎn)Connection對(duì)象Recordset對(duì)象Command對(duì)象Field對(duì)象Parameter對(duì)象Property對(duì)象Error對(duì)象

ASP作為動(dòng)態(tài)Web應(yīng)用程序,其開發(fā)Web數(shù)據(jù)庫是其最重要的環(huán)節(jié)。ADO(ActiveX

Data

ObjectsActiveX數(shù)據(jù)對(duì)象)是微軟提供的新一代數(shù)據(jù)庫存取訪問技術(shù),ASP內(nèi)置的ADO組件是數(shù)據(jù)庫開發(fā)的重

要工具。

應(yīng)用ADO組件,通過ODBC驅(qū)動(dòng)程序或OLE

DB鏈接字符串可實(shí)現(xiàn)ASP與數(shù)據(jù)庫之間的連接,通過ADO組件提供的各種方法實(shí)現(xiàn)數(shù)據(jù)檢索和數(shù)據(jù)編輯等操作。

本章將重點(diǎn)介紹ADO對(duì)象的結(jié)構(gòu)和配置,以及各種數(shù)據(jù)訪問對(duì)象。本章將詳細(xì)介紹ActiveX數(shù)據(jù)對(duì)象及其在ASP編程中的應(yīng)用。8.1

ADO簡介

ADO對(duì)象的主要優(yōu)點(diǎn)是高速、容易使用、占用內(nèi)存和磁盤空間少,所以非常適合于作為服務(wù)器端的數(shù)據(jù)庫訪問技術(shù)。

ADO對(duì)象是多線程的,在出現(xiàn)大量并發(fā)請(qǐng)求時(shí),也同樣可以保持服務(wù)器的運(yùn)行效率,并且通過連接池技術(shù)以及對(duì)數(shù)據(jù)庫連接資源的完全控制,提供與遠(yuǎn)程數(shù)據(jù)庫的高效連接與訪問,同時(shí)它還支持事務(wù)處理,以開發(fā)高效率、高可靠性的數(shù)據(jù)庫應(yīng)用程序。

ADO結(jié)合了OLE

DB易于使用的特性以及

RDO(Remote

Data

Objects遠(yuǎn)程數(shù)據(jù)對(duì)象)和

DAO(Data

Access

Ojects數(shù)據(jù)訪問對(duì)象)模型中的最好特性,并將它們重新組織在一個(gè)對(duì)象模型中。

ADO包含所有可以被OLE

DB標(biāo)準(zhǔn)對(duì)象描述的數(shù)據(jù)

類型,即ADO對(duì)象模型具有擴(kuò)展性,即使對(duì)于那些從來沒有見到過的記錄集的信息格式,只要使用正常的ADO編程對(duì)象,就能夠可視化地處理所有的工作,ADO對(duì)象模型給開發(fā)人員提供了一種快捷、簡單、高效的數(shù)據(jù)庫訪問方法,可以在腳本中使用

ADO對(duì)象建立對(duì)數(shù)據(jù)庫的連接,并從數(shù)據(jù)庫中讀取記錄,形成需要的對(duì)象集合。使用ADO對(duì)象建立對(duì)數(shù)據(jù)庫的連接有兩種方法:使用面向ODBC驅(qū)動(dòng)器的OLE

DB驅(qū)動(dòng)程序建立連接,這種連接與任何有ODBC驅(qū)動(dòng)器的數(shù)據(jù)庫兼容。使用原始的OLE

DB驅(qū)動(dòng)程序建立連接。

ADO組件由ADODB對(duì)象庫構(gòu)成,ADODB對(duì)象庫包含7個(gè)對(duì)象和4個(gè)數(shù)據(jù)集合。它們分別是:Connection對(duì)象、Recordset對(duì)象、Command對(duì)象、

Field對(duì)象、Parameter對(duì)象、Property對(duì)象和Error對(duì)象,以及Fields集合、Parameter集合、

Properties集合和Error集合。

ADO把絕大部分的數(shù)據(jù)庫操作封裝在7個(gè)對(duì)象中,在ASP頁面中編程調(diào)用這些對(duì)象執(zhí)行相應(yīng)的數(shù)據(jù)庫操作。8.2

Connection對(duì)象

Connection對(duì)象用來建立數(shù)據(jù)源和ASP程序之間的連接。它代表ASP程序與數(shù)據(jù)源的唯一對(duì)話,建

立到數(shù)據(jù)源的連接后,可以在此基礎(chǔ)上用

RecordSet對(duì)象或Command對(duì)象對(duì)數(shù)據(jù)庫進(jìn)行查詢、更新、插入、刪除等操作。8.2.1

打開和關(guān)閉數(shù)據(jù)庫連接

要實(shí)現(xiàn)打開和關(guān)閉數(shù)據(jù)庫連接,首先要應(yīng)用

Connection對(duì)象創(chuàng)建數(shù)據(jù)連接,因?yàn)镃onnection對(duì)象不是ASP內(nèi)置對(duì)象,要使用Connection對(duì)象,必須首先顯式地創(chuàng)建它。<%Dim

connSet

conn

=

Server.CreateObject

("ADODB.Connection")%>

創(chuàng)建了Connection對(duì)象之后,需要打開連接才能連接到數(shù)據(jù)庫。若使用ODBC進(jìn)行數(shù)據(jù)源連接,則對(duì)應(yīng)的語法為:<%cn.Open

"DSN=建立的系統(tǒng)DSN名稱"%>Connection對(duì)象也可直接連接到Access數(shù)據(jù)庫<%Dim

connSetConn=Server.CreateObject("ADODB.Connection")Conn.open"provider=microsoft.jet.oledb.4.0;data

source

="&server.mappath("database.mdb")%>應(yīng)用完Connection對(duì)象之后,用戶最好關(guān)閉并釋放Connection對(duì)象,來緩解數(shù)據(jù)庫服務(wù)器的壓力。其語法如下:<%Conn.closeSet

conn

=

nothing%>8.2.2

Connection對(duì)象的屬性屬

性含

義Attributes包含Connection對(duì)象的事務(wù)狀況。ConnectionString包含用來和數(shù)據(jù)源建立連接的字符串。ConnectionTimeOut包含連接到數(shù)據(jù)庫的等待最長時(shí)間。如果超過此時(shí)間,則認(rèn)為連接失敗。DefaultDatabase當(dāng)前連接數(shù)據(jù)源所使用的默認(rèn)數(shù)據(jù)庫。Mode數(shù)據(jù)的更新許可權(quán),設(shè)置或返回provider的訪問權(quán)限。Provider包含Connection對(duì)象的數(shù)據(jù)提供者名稱。State包含Connection對(duì)象的當(dāng)前狀態(tài),返回一個(gè)描述連接是打開還是關(guān)閉的值。

1.Attributes屬性:可設(shè)置或返回Long值,可讀寫,該值可指示對(duì)象的一項(xiàng)或多項(xiàng)特性。并且其值可以是一個(gè)或多個(gè)XactAttributeEnum值的和。常量值描述adXactAbortRetaining262144當(dāng)調(diào)用RollbackTrans,自動(dòng)啟動(dòng)一個(gè)新事務(wù)。adXactCommitRetaining131072當(dāng)調(diào)用CommitTrans,自動(dòng)啟動(dòng)新事務(wù)。2.ConnectionTimeOut屬性:可設(shè)置或返回在終止嘗試和產(chǎn)生錯(cuò)誤之前打開連接需要等待的秒數(shù)。默認(rèn)是15秒。3.ConnectionString屬性:可設(shè)置或返回用于建立到數(shù)據(jù)源的連接的信息。4.DefaultDatabase屬性:可設(shè)置或返回一個(gè)字符串值,該值是特定Connection對(duì)象上的默認(rèn)數(shù)據(jù)庫的名稱。5.Mode屬性:可設(shè)置或返回一個(gè)

ConnectModeEnum

值,此屬性為可讀寫,該值指示在Connection,Record或Stream對(duì)象中修改數(shù)據(jù)的權(quán)限。6.Provider屬性:可設(shè)置或返回包含特定

Connection對(duì)象的提供者名稱的字符串值。默認(rèn)是MSDASQL(Microsoft

OLE

DBprovider

for

ODBC)。7.State屬性:可返回一個(gè)值,為只讀。該值描述對(duì)象的當(dāng)前狀態(tài)是打開、關(guān)閉、正在連接、正在執(zhí)行還是正在檢索數(shù)據(jù)。8.2.3

Connection對(duì)象的方法方法描述Open打開一個(gè)數(shù)據(jù)庫的鏈接。Execute該方法可以執(zhí)行SQL語句,并且返回一個(gè)RecordSet對(duì)象。Close關(guān)閉一個(gè)已經(jīng)打開的鏈接。BeginTrans開始一個(gè)新事務(wù)。CommitTrans保存任何更改并結(jié)束當(dāng)前事務(wù)。RollbackTrans取消當(dāng)前事務(wù)中所作的任何更改并結(jié)束事務(wù)。

1.Open方法:用于創(chuàng)建與數(shù)據(jù)源的連接,只有調(diào)用了

Connection對(duì)象的Open方法后,Connection對(duì)象才會(huì)真正存在,然后才能發(fā)命令對(duì)數(shù)據(jù)源產(chǎn)生作用。語法為:connection.Open

connectionstring,userID,password

connectionstring:可選。一個(gè)包含有關(guān)連接的信息的字符串值。該字符串由一系列被分號(hào)隔開的parameter=value語句組成的。

userID:可選。一個(gè)字符串值,包含建立連接時(shí)要使用的用戶名稱。

Password:可選。一個(gè)字符串值,包含建立連接時(shí)要使用的密碼。

2.Execute方法:此方法可用于執(zhí)行指定的SQL語句,用于實(shí)現(xiàn)對(duì)數(shù)據(jù)庫表的修改、插入、刪除和查詢等操作。其一般格式有以下兩種:

1)執(zhí)行SQL查詢語句時(shí),將返回查詢得到的記錄數(shù)。語法為:Set對(duì)象變量名=Connection.Execute(“SQL查詢語句”)

2)執(zhí)行操作性語句時(shí),沒有記錄集的返回。語法為:Connection.ExecuteCommandText,RecordsAffected,Options

3.Close方法:該方法用于關(guān)閉連接對(duì)象,以釋放所占用的系統(tǒng)資源。

4.BeginTrans、CommitTrans、RollbackTrans方法ADO的一個(gè)主要功能是控制并執(zhí)行數(shù)據(jù)源的事務(wù)操作。事務(wù)機(jī)制的工作原理是,當(dāng)一個(gè)事務(wù)開始時(shí),先將所有對(duì)數(shù)據(jù)庫的修改緩存在本地,如果全部操作都能成功,則一次性提交到數(shù)據(jù)庫執(zhí)行,否則只要其中一個(gè)步驟操作失敗,就會(huì)發(fā)生回滾事件,撤銷所有寫操作。采用這種機(jī)制,既提高了工作效率,又保證了數(shù)據(jù)一致性。例如,在進(jìn)行資金轉(zhuǎn)帳時(shí),必須從源帳戶中減去轉(zhuǎn)帳數(shù)額,并將同樣數(shù)額的資金劃撥到目標(biāo)帳戶,無論其中哪個(gè)更新失敗,都將導(dǎo)致帳戶收支不平衡。在打開的事務(wù)中使用這些方法可確保要么全部進(jìn)行更新,要么不做任何更新。8.3

Command對(duì)象

Command對(duì)象代表一個(gè)能被數(shù)據(jù)提供器處理的命令。使

用Command對(duì)象檢索數(shù)據(jù)庫可返回Recordset對(duì)象中的記

錄,它還能執(zhí)行添加記錄、刪除記錄、更新記錄、選擇記錄以及建立數(shù)據(jù)表、刪除數(shù)據(jù)表、修改數(shù)據(jù)表等操作。由于Command對(duì)象可以帶輸入、輸出參數(shù),因而使用

Command對(duì)象不僅能夠?qū)σ话愕臄?shù)據(jù)庫信息進(jìn)行操作,

還能夠調(diào)用數(shù)據(jù)庫存儲(chǔ)過程。

Command對(duì)象的Execute方法可以執(zhí)行SQL語句、調(diào)用存

儲(chǔ)過程和創(chuàng)建Recordset對(duì)象實(shí)例。Command對(duì)象還具有

Parameter集合,使用該集合可以將數(shù)據(jù)庫存儲(chǔ)過程的參數(shù)與集合中各項(xiàng)元素相對(duì)應(yīng),而且存儲(chǔ)過程的輸出值也作為一個(gè)參數(shù)被包含在Parameter集合中,從而簡化了對(duì)存儲(chǔ)過程的調(diào)用。8.3.1

Command對(duì)象的屬性屬性含義Activeconnection設(shè)定Command對(duì)象的鏈接對(duì)象Commandtext設(shè)置SQL命令或存儲(chǔ)過程Commandtype設(shè)置Commandtext的命令類型CommandTimeout設(shè)置命令執(zhí)行的超時(shí)時(shí)間1.Activeconnection屬性:可指示Command對(duì)象當(dāng)前所屬的Connection對(duì)象。如果連接被關(guān)閉,它可設(shè)置或返回連接的定義。如果連接打開,它會(huì)設(shè)置或返回當(dāng)前的Connection對(duì)象。2.Commandtext屬性:可設(shè)置或返回一個(gè)字符串,該字符串包含一個(gè)provider命令,比如一條SQL語句、一個(gè)表名稱、一個(gè)相對(duì)URL、或者一個(gè)存儲(chǔ)過程調(diào)用。默認(rèn)值為零""(零長度字符串)。

3.Commandtype屬性:可設(shè)置或返回一個(gè)

CommandTypeEnum

值,該值可定義Command對(duì)象的類型。4.CommandTimeout屬性:可設(shè)置或返回執(zhí)行命令期間在終止嘗試和產(chǎn)生錯(cuò)誤之前需等待的時(shí)間。設(shè)置或返回Long值,該值指示等待命令執(zhí)行的秒數(shù)。默認(rèn)值為30。8.3.2

Command對(duì)象的方法

1.CreateParameter方法:可創(chuàng)建和返回一個(gè)

Parameter對(duì)象,該對(duì)象包含指定的屬性,比如名稱、類型、方向、大小和值。

此方法不會(huì)將Parameter對(duì)象自動(dòng)追加到

Command對(duì)象的Parameters集合??墒褂?/p>

Command對(duì)象的Parameters集合的Append方法將Parameter對(duì)象添加。語法:Set對(duì)象變量名=objcommand.CreateParameter(Name,Type,Direction,Size,Value)

2.Execute方法:可執(zhí)行Command對(duì)象的

CommandText屬性中指定的查詢、SQL語句或存儲(chǔ)過程。

如果CommandText屬性指定有記錄返回的查詢,執(zhí)行產(chǎn)生的任何結(jié)果都將存儲(chǔ)在新的Recordset對(duì)象中。

如果此命令沒有記錄返回的查詢,提供者將返回關(guān)閉的Recordset對(duì)象。語法:對(duì)于沒有記錄返回的Command:objcommand.Execute

RecordsAffected,parameters,options語法:對(duì)于有記錄返回的Command:Set

rs=objcommand.Execute(RecordsAffected,parameters,options)

RecordsAffected:可選。返回受查詢影響記錄的數(shù)目。對(duì)于有記錄返回的查詢,請(qǐng)使用

Recordset對(duì)象的RecordCount屬性來計(jì)算該對(duì)象中的記錄數(shù)量。

Parameters:可選。用SQL語句傳遞的參數(shù)值。用于更改、更新或向Parameters集合插入新的參數(shù)值。

Options:可選。指示提供者應(yīng)如何計(jì)算

Command對(duì)象的CommandText屬性。可以是一個(gè)或者多個(gè)CommandType值。默認(rèn)是

adCmdUnspecified。8.4

RecordSet對(duì)象除了利用Connection與Command對(duì)象的Execute方法可獲得記錄集外,利用ADO的RecordSet對(duì)象,也可獲得記錄集,且該方法所獲得的記錄集,具有更靈活的控制性和更強(qiáng)的功能。

在打開記錄集之前,可以詳細(xì)設(shè)置記錄集的游標(biāo)和鎖定類型,以決定可對(duì)一個(gè)記錄集進(jìn)行怎樣的操作。同時(shí)該對(duì)象提供了一系列的方法和屬性,通過編程可以非常方便的處理記錄集,下面介紹該對(duì)象的應(yīng)用。創(chuàng)建一個(gè)RecordSet對(duì)象實(shí)例,語法如下:Set記錄集對(duì)象實(shí)例變量=Server.CreateObject(“ADODB.RecordSet”)8.4.1

RecordSet對(duì)象的屬性

1.ActiveConnection屬性:通過設(shè)置RecordSet對(duì)象的

ActiveConnection屬性可以使Recordset對(duì)象與特定的

Connection對(duì)象相關(guān)聯(lián),ActiveConnection屬性可以是一個(gè)Connection對(duì)象名稱或是是一個(gè)包含數(shù)據(jù)源連接信息的字符串,如果連接被關(guān)閉,設(shè)置或返回連接的定義,如果連接打開,設(shè)置或返回當(dāng)前的Connection對(duì)象。

2.ActiveCommand屬性:返回與Recordset對(duì)象相關(guān)聯(lián)的Command對(duì)象。

3.Source屬性:可以是一個(gè)Command對(duì)象名稱、一條

SQL語句或是一個(gè)指定的數(shù)據(jù)表等。4.CursorLocation屬性:設(shè)置或返回游標(biāo)服務(wù)的位置。

5.CursorType屬性:設(shè)置或返回一個(gè)Recordset對(duì)象的游標(biāo)類型。在ADO中,定義了4種不同的游標(biāo)(指針)類型。符號(hào)常量值含義AdOpenForwardOnly0默認(rèn)值,僅向前游標(biāo),只允許在

Recordset中向前滾動(dòng)。此外,由其他用戶所做的添加、更改和刪除將是不可見的。adOpenKeyset1鍵集游標(biāo),允許用戶看到其他用戶所做的數(shù)據(jù)更改。但不能看到其他用戶添加和刪除的記錄。adOpenDynamic2動(dòng)態(tài)游標(biāo),用戶可以看到其他用戶所作的添加、更改和刪除。adOpenStatic3靜態(tài)游標(biāo),提供記錄集的靜態(tài)副本,可用來查找數(shù)據(jù)或生成報(bào)告。此外,由其他用戶所做的添加、更改和刪除將是不可見的。

6.LockType屬性:設(shè)置或返回當(dāng)編輯Recordset中的一條記錄時(shí),可指定鎖定類型的值。符號(hào)常量值含義adLockReadOnly0默認(rèn)值。以只讀模式打開,故不能更新、插入或刪除記錄集中的記錄。adLockPessimistic1保守式記錄鎖定。在編輯修改一個(gè)記錄時(shí),立即鎖定它,以防止其他用戶對(duì)其進(jìn)行操作。最安全的鎖定機(jī)制。adLockOptimistic2開放式記錄鎖定。在編輯修改記錄時(shí),并未加鎖,只有在調(diào)用記錄集的Update方法更新記錄時(shí),才鎖定記錄。adLockBatchOptimistic3開放式批更新,用于立即更新模式相反的批更新模式。

7.RecordCount屬性:返回一個(gè)Recordset對(duì)象中的記錄數(shù)目。

8.BOF屬性:如果當(dāng)前的記錄位置在第一條記錄之前,則返回true,否則返回fasle。

9.EOF屬性:如果當(dāng)前記錄的位置在最后的記錄之后,則返回true,否則返回fasle。利用該屬性,可防止指針越界而發(fā)生錯(cuò)誤。通常用來作為循環(huán)訪問記錄集結(jié)束的標(biāo)志。

10.PageSize屬性:設(shè)置或返回Recordset對(duì)象的一個(gè)單一頁面上所允許的最大記錄數(shù)。

11.PageCount屬性:返回一個(gè)Recordset對(duì)象中的數(shù)據(jù)頁數(shù)。

12.AbsolutePage屬性:設(shè)置或返回一個(gè)可指定

Recordset對(duì)象中頁碼的值。

13.AbsolutePosition屬性:設(shè)置或返回一個(gè)值,此值可指定Recordset對(duì)象中當(dāng)前記錄的順序位置(序號(hào)位置)。該屬性一般是介于1和RecordCount屬性值之間的整數(shù),但

也可能取具有特殊含義的值,常量值含義AedPostUnknown-1表示當(dāng)前位置未知,或者提供器不支持AbsolutePage屬性。AdPostBOF-2表示當(dāng)前記錄指針位于第一個(gè)記錄之前。AdPostEOF-3表示當(dāng)前記錄指針位于最后一個(gè)記錄之前。8.4.2

RecordSet對(duì)象的方法

1.Open方法:RecordSet對(duì)象中最重要的方法是應(yīng)用Open方法可打開一個(gè)光標(biāo),該光標(biāo)指向查詢返回的記錄。其語法如下。記錄集對(duì)象實(shí)例變量.OpenSource,ActiveConnection,CursorType,LockType,Options

Source:該參數(shù)可以是含有一個(gè)SQL字符串、表格、視圖名稱或者存儲(chǔ)過程調(diào)用的字符串,也可以是Command對(duì)象。

ActiveConnection:該參數(shù)可以Connection對(duì)象的實(shí)例名或字符串。

CursorType:用來確定服務(wù)器打開Recordset時(shí)應(yīng)該使用的游標(biāo)類型。

LockType:用來確定服務(wù)器打開Recordset時(shí)應(yīng)該使用的鎖定類型。

Options:該參數(shù)用于指定Source參數(shù)項(xiàng)的命令字符串的類型,其取值與對(duì)應(yīng)的類型與Connection對(duì)象中Execute方法中Options參數(shù)相同,

2.RecordSet對(duì)象其它方法:RecordSet對(duì)象提供了如表所示的非常豐富的記錄集方法,通過這些方法可實(shí)現(xiàn)對(duì)記錄集的添加、刪除、修改等各種操作。方法描述AddNew創(chuàng)建一條新記錄。Cancel撤銷一次執(zhí)行。CancelUpdate撤銷對(duì)Recordset對(duì)象的一條記錄所做的更改。Close關(guān)閉一個(gè)Recordset。Delete刪除一條記錄或一組記錄。Find搜索一個(gè)Recordset中滿足指定某個(gè)條件的一條記錄。GetRows把多條記錄從一個(gè)Recordset對(duì)象中拷貝到一個(gè)二維數(shù)組中。GetString將Recordset作為字符串返回。Move在Recordset對(duì)象中移動(dòng)記錄指針。MoveFirst把記錄指針移動(dòng)到第一條記錄。MoveLast把記錄指針移動(dòng)到最后一條記錄。MoveNext把記錄指針移動(dòng)到下一條記錄。MovePrevious把記錄指針移動(dòng)到上一條記錄。Open打開一個(gè)數(shù)據(jù)庫元素,此元素可提供對(duì)表的記錄、查詢的結(jié)果或保存的Recordset的訪問。Seek搜索Recordset的索引以快速定位與指定的值相匹配的行,并使其成為當(dāng)前行。Update保存所有對(duì)Recordset對(duì)象中的一條單一記錄所做的更改。UpdateBatch把所有Recordset中的更改存入數(shù)據(jù)庫。請(qǐng)?jiān)谂履J街惺褂谩?.5

Errors數(shù)據(jù)集合和Error對(duì)象

當(dāng)ADO對(duì)象的操作產(chǎn)生錯(cuò)誤時(shí),會(huì)有一個(gè)或多個(gè)Error對(duì)象被放到Connection對(duì)象的Errors集合中;據(jù)此,可獲得產(chǎn)生錯(cuò)誤的原因和來源,以便采取適當(dāng)?shù)拇胧?,使程序更加完善。Error對(duì)象可通過建立的Connection對(duì)象的Errors數(shù)據(jù)集合取得,也可通過RecordSet對(duì)象或

Command對(duì)象的ActiveConnection屬性來取得。8.5.1

Errors數(shù)據(jù)集合

所有Error對(duì)象的集合用來響應(yīng)一個(gè)連接(Connection)上的錯(cuò)誤。Errors數(shù)據(jù)集合包括兩個(gè)屬性:Count和Item。Count屬性:用來指示集合中有多少個(gè)Error對(duì)象,應(yīng)用語法為:long=Errors集合變量.count。Item屬性:用來訪問Errors集合中每一個(gè)Error對(duì)象的索引,可以根據(jù)這個(gè)值來訪問一個(gè)特定的Error對(duì)象。應(yīng)用語法為:Set

Err=Errors.item(Index)或Set

Err=Errors(Index)。Errors集合的屬性Connection對(duì)象.Errors.Count可以獲得數(shù)據(jù)庫是否發(fā)生了錯(cuò)誤,如果沒有錯(cuò)誤發(fā)生,則Count等于0,否則大于0。

Errors集合有2個(gè)方法:Clear和Refresh,其含義如下。

1.Clear方法:從Error集合中移去所有的Error對(duì)象。應(yīng)用語法為Errors.Clear。

2.Refresh方法:根據(jù)來自數(shù)據(jù)提供者的變化信息來更新集合中的Error對(duì)象。應(yīng)用語法為

Errors.Refresh。8.5.2

Error對(duì)象

Connection對(duì)象是用于與各類的數(shù)據(jù)庫進(jìn)行連接

的,但在此過程中將會(huì)出現(xiàn)一些不可預(yù)測(cè)的錯(cuò)誤,因而出現(xiàn)了Error對(duì)象。首先要清楚一個(gè)概念,

Error對(duì)象是在連接數(shù)據(jù)庫時(shí)產(chǎn)生的,而并非那些運(yùn)行時(shí)的實(shí)時(shí)錯(cuò)誤。8.6

Fields數(shù)據(jù)集合和Field對(duì)象

每個(gè)Field對(duì)象對(duì)應(yīng)于RecordSet中的一列,由多個(gè)

Field對(duì)象可以構(gòu)成Fields數(shù)據(jù)集合。使用Field對(duì)象的Value屬性可設(shè)置或取得當(dāng)前記錄的數(shù)據(jù)。8.6.1

Fields數(shù)據(jù)集合

所有Field對(duì)象的集合都關(guān)聯(lián)著一個(gè)記錄集(RecordSet)對(duì)象。Fields集合包含記錄集中每一字段值,相當(dāng)于訪問表格的某一個(gè)單元格。訪問

Fields集合的方法有多種,比如訪問以上數(shù)據(jù)表student中姓名字段的值,可應(yīng)用如下方法:rs.Fields.Item(1)rs.Fields.Item(1).valuers.Fields.Item(“姓名”)rs.Fields.Item(“姓名”).valuers.Fields(1)rs.Fields(1).valuers.Fields(“姓名”)rs.Fields(“姓名”).valuers.(1)rs.(1).valuers.(“姓名”)rs.(“姓名”).value8.6.2

Field對(duì)象的屬性屬性含義Name可返回字段名Value可查看或更改字段中的數(shù)據(jù)Type、Precision、NumericScale可返回字段的基本特性DefinedSize可返回已聲明的字段大小ActualSize可返回給定字段中數(shù)據(jù)的實(shí)際大小Attributes可決定對(duì)于給定字段哪些類型的功能受到支持8.6.3

Field對(duì)象的方法Field對(duì)象中主要的方法包括AppendChunk和GetChunk方法,用來專門處理text、image等數(shù)據(jù)類型。其中AppendChunk方法用于將數(shù)據(jù)寫到數(shù)據(jù)庫中;GetChunk方法用于將數(shù)據(jù)從數(shù)據(jù)庫中取出。語法如下:Field.AppendChunk

dataVariant

=

field.GetChunk(size)8.7 Properties數(shù)據(jù)集合和

Property對(duì)象

Property對(duì)象集合關(guān)聯(lián)著連接、命令、記錄集或字段對(duì)象中的其中一個(gè)。Property對(duì)象代表數(shù)據(jù)提供者的屬性。下面介紹Properies數(shù)據(jù)集合和

Property對(duì)象的內(nèi)容。8.7.1

Properties數(shù)據(jù)集合

Properties數(shù)據(jù)集合是包含特定對(duì)象實(shí)例的所有

Property對(duì)象,也稱為Properties數(shù)據(jù)集合對(duì)象,包括Count屬性、Refresh方法和Item方法等。

1.Count屬性:用來取得Properties集合中包含的

Property對(duì)象個(gè)數(shù)。

2.Refresh方法:用來重新取得Properties數(shù)據(jù)集合中所有的Property對(duì)象。

3.Item方法:用來取得Properties集合中的某個(gè)

Property對(duì)象。屬性含義Name8.7.2表示P對(duì)r象o屬p性e的r名ty稱對(duì)象Value表示對(duì)象的屬性值Type表示對(duì)象屬性的數(shù)據(jù)類型Attributes表示對(duì)象的特性8.8

Parameters數(shù)據(jù)集合和

Parameter對(duì)象

在前面的章節(jié)中介紹Command對(duì)象時(shí),已介紹過

Parameter對(duì)象可為Command對(duì)象傳遞參數(shù),而

Command對(duì)象的所有Parameter對(duì)象構(gòu)成了

Parameter集合。也可以說Parameter對(duì)象集合關(guān)聯(lián)著一個(gè)命令(Command)對(duì)象。

Parameter對(duì)象代表SQL

Server存儲(chǔ)過程的參數(shù)或查詢中的參數(shù)。

下面介紹Parameters數(shù)據(jù)集合與Parameter對(duì)象的內(nèi)容。8.8.1

Parameters數(shù)據(jù)集合

在Command對(duì)象中,有多個(gè)Parameter子對(duì)象可以用來存

儲(chǔ)參數(shù),這些Parameter對(duì)象都收集在Parameters集合中。該集合中包括以下屬性與方法:

1.Count屬性:存儲(chǔ)了組成Parameters集合的Parameter對(duì)象的數(shù)目。

2.Append方法:用于將Parameter對(duì)象追加到

Parameters集合中。

3.Delete方法:用于刪除Parameters集合中的Parameter對(duì)象。4.Refresh方法:用于更新Parameters

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論