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

下載本文檔

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

文檔簡(jiǎn)介

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

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

Data

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

要工具。

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

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

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

ADO簡(jiǎn)介

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

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

ADO結(jié)合了OLE

DB易于使用的特性以及

RDO(Remote

Data

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

DAO(Data

Access

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

ADO包含所有可以被OLE

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

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

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

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

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

ADO組件由ADODB對(duì)象庫(kù)構(gòu)成,ADODB對(duì)象庫(kù)包含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ù)庫(kù)操作封裝在7個(gè)對(duì)象中,在ASP頁(yè)面中編程調(diào)用這些對(duì)象執(zhí)行相應(yīng)的數(shù)據(jù)庫(kù)操作。8.2

Connection對(duì)象

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

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

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

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

要實(shí)現(xiàn)打開(kāi)和關(guān)閉數(shù)據(jù)庫(kù)連接,首先要應(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ì)象之后,需要打開(kāi)連接才能連接到數(shù)據(jù)庫(kù)。若使用ODBC進(jìn)行數(shù)據(jù)源連接,則對(duì)應(yīng)的語(yǔ)法為:<%cn.Open

"DSN=建立的系統(tǒng)DSN名稱"%>Connection對(duì)象也可直接連接到Access數(shù)據(jù)庫(kù)<%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ì)象,來(lái)緩解數(shù)據(jù)庫(kù)服務(wù)器的壓力。其語(yǔ)法如下:<%Conn.closeSet

conn

=

nothing%>8.2.2

Connection對(duì)象的屬性屬

性含

義Attributes包含Connection對(duì)象的事務(wù)狀況。ConnectionString包含用來(lái)和數(shù)據(jù)源建立連接的字符串。ConnectionTimeOut包含連接到數(shù)據(jù)庫(kù)的等待最長(zhǎng)時(shí)間。如果超過(guò)此時(shí)間,則認(rèn)為連接失敗。DefaultDatabase當(dāng)前連接數(shù)據(jù)源所使用的默認(rèn)數(shù)據(jù)庫(kù)。Mode數(shù)據(jù)的更新許可權(quán),設(shè)置或返回provider的訪問(wèn)權(quán)限。Provider包含Connection對(duì)象的數(shù)據(jù)提供者名稱。State包含Connection對(duì)象的當(dāng)前狀態(tài),返回一個(gè)描述連接是打開(kāi)還是關(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ò)誤之前打開(kāi)連接需要等待的秒數(shù)。默認(rèn)是15秒。3.ConnectionString屬性:可設(shè)置或返回用于建立到數(shù)據(jù)源的連接的信息。4.DefaultDatabase屬性:可設(shè)置或返回一個(gè)字符串值,該值是特定Connection對(duì)象上的默認(rèn)數(shù)據(jù)庫(kù)的名稱。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)是打開(kāi)、關(guān)閉、正在連接、正在執(zhí)行還是正在檢索數(shù)據(jù)。8.2.3

Connection對(duì)象的方法方法描述Open打開(kāi)一個(gè)數(shù)據(jù)庫(kù)的鏈接。Execute該方法可以執(zhí)行SQL語(yǔ)句,并且返回一個(gè)RecordSet對(duì)象。Close關(guān)閉一個(gè)已經(jīng)打開(kāi)的鏈接。BeginTrans開(kāi)始一個(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)生作用。語(yǔ)法為:connection.Open

connectionstring,userID,password

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

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

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

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

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

2)執(zhí)行操作性語(yǔ)句時(shí),沒(méi)有記錄集的返回。語(yǔ)法為: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ù)開(kāi)始時(shí),先將所有對(duì)數(shù)據(jù)庫(kù)的修改緩存在本地,如果全部操作都能成功,則一次性提交到數(shù)據(jù)庫(kù)執(zhí)行,否則只要其中一個(gè)步驟操作失敗,就會(huì)發(fā)生回滾事件,撤銷所有寫操作。采用這種機(jī)制,既提高了工作效率,又保證了數(shù)據(jù)一致性。例如,在進(jìn)行資金轉(zhuǎn)帳時(shí),必須從源帳戶中減去轉(zhuǎn)帳數(shù)額,并將同樣數(shù)額的資金劃撥到目標(biāo)帳戶,無(wú)論其中哪個(gè)更新失敗,都將導(dǎo)致帳戶收支不平衡。在打開(kāi)的事務(wù)中使用這些方法可確保要么全部進(jìn)行更新,要么不做任何更新。8.3

Command對(duì)象

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

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

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

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

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

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

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

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

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

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集合。可使用

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

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

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

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

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

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

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

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

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

Parameters:可選。用SQL語(yǔ)句傳遞的參數(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)的功能。

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

RecordSet對(duì)象的屬性

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

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

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

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

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

SQL語(yǔ)句或是一個(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)。此外,由其他用戶所做的添加、更改和刪除將是不可見(jiàn)的。adOpenKeyset1鍵集游標(biāo),允許用戶看到其他用戶所做的數(shù)據(jù)更改。但不能看到其他用戶添加和刪除的記錄。adOpenDynamic2動(dòng)態(tài)游標(biāo),用戶可以看到其他用戶所作的添加、更改和刪除。adOpenStatic3靜態(tài)游標(biāo),提供記錄集的靜態(tài)副本,可用來(lái)查找數(shù)據(jù)或生成報(bào)告。此外,由其他用戶所做的添加、更改和刪除將是不可見(jiàn)的。

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

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

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

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

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

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

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

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

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方法可打開(kāi)一個(gè)光標(biāo),該光標(biāo)指向查詢返回的記錄。其語(yǔ)法如下。記錄集對(duì)象實(shí)例變量.OpenSource,ActiveConnection,CursorType,LockType,Options

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

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

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

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

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

2.RecordSet對(duì)象其它方法:RecordSet對(duì)象提供了如表所示的非常豐富的記錄集方法,通過(guò)這些方法可實(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打開(kāi)一個(gè)數(shù)據(jù)庫(kù)元素,此元素可提供對(duì)表的記錄、查詢的結(jié)果或保存的Recordset的訪問(wèn)。Seek搜索Recordset的索引以快速定位與指定的值相匹配的行,并使其成為當(dāng)前行。Update保存所有對(duì)Recordset對(duì)象中的一條單一記錄所做的更改。UpdateBatch把所有Recordset中的更改存入數(shù)據(jù)庫(kù)。請(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ò)誤的原因和來(lái)源,以便采取適當(dāng)?shù)拇胧?,使程序更加完善。Error對(duì)象可通過(guò)建立的Connection對(duì)象的Errors數(shù)據(jù)集合取得,也可通過(guò)RecordSet對(duì)象或

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

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

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

Err=Errors.item(Index)或Set

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

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

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

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

Errors.Refresh。8.5.2

Error對(duì)象

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

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

Error對(duì)象是在連接數(shù)據(jù)庫(kù)時(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)于訪問(wèn)表格的某一個(gè)單元格。訪問(wèn)

Fields集合的方法有多種,比如訪問(wèn)以上數(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方法,用來(lái)專門處理text、image等數(shù)據(jù)類型。其中AppendChunk方法用于將數(shù)據(jù)寫到數(shù)據(jù)庫(kù)中;GetChunk方法用于將數(shù)據(jù)從數(shù)據(jù)庫(kù)中取出。語(yǔ)法如下: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屬性:用來(lái)取得Properties集合中包含的

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

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

3.Item方法:用來(lái)取得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í),已介紹過(guò)

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

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

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

Parameter對(duì)象代表SQL

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

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

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

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

儲(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論