第6章ADO對(duì)象模型-Recordset解析課件_第1頁(yè)
第6章ADO對(duì)象模型-Recordset解析課件_第2頁(yè)
第6章ADO對(duì)象模型-Recordset解析課件_第3頁(yè)
第6章ADO對(duì)象模型-Recordset解析課件_第4頁(yè)
第6章ADO對(duì)象模型-Recordset解析課件_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

ADO對(duì)象模型

——asp中的使用7ADO對(duì)象模型ADO對(duì)象模型創(chuàng)建:setcon=Server.CreateObject("ADODB.Connection")屬性:

ConnectionString

ConnectionTimeoutMode方法:

OpenExecuteBeginTrans

CommitTrans

RollbackTransClose

注意:Execute可返回Recordset對(duì)象訪(fǎng)問(wèn):seterrs=con.errors集合屬性:count元素屬性:sourcedescriptionRecordSet和Command對(duì)象,通過(guò)它們的屬性ActiveConnection可訪(fǎng)問(wèn)集合Errors的上層元素connection,然后再用Errors屬性訪(fǎng)問(wèn)集合。

seterrs=rs.ActiveConnection.Errorsseterrs=cmd.ActiveConnection.Errors顯示集合中的元素內(nèi)容

seterrs=rs.ActiveConnection.ErrorsForeachiteminerrs

response.write"錯(cuò)誤源是:"&item.source

response.write"錯(cuò)誤詳情:"&item.description

response.write"<hr>"nextADO對(duì)象模型創(chuàng)建:setcmd=Server.CreateObject("ADODB.Command")屬性:ActiveConnection

已打開(kāi)的連接或連接參數(shù)字符串CommandText

設(shè)置SQL語(yǔ)句CommandType

指定命令類(lèi)型以?xún)?yōu)化性能CommandTimeout

設(shè)置等待命令執(zhí)行的秒數(shù)*Parameter(s) 定義參數(shù)化查詢(xún)或存儲(chǔ)過(guò)程參數(shù)*Prepared 執(zhí)行前是否保存命令的編譯版本方法:Execute 執(zhí)行命令并在適當(dāng)?shù)臅r(shí)候返回Recordset

對(duì)象setrs=con.execute("select

xh,xmfromxswherenl>=20",,AdCmdText)或setcmd=Server.CreateObject("ADODB.Command")setcmd.ActiveConnection=concmd.CommandText="select*fromxs"cmd.CommandType=AdCmdTextsetrs=cmd.Execute

都能生成Recordset對(duì)象rs-再進(jìn)入二重循環(huán)處理rs中的所有數(shù)據(jù)

Recordset

對(duì)象Recordset對(duì)象概述來(lái)自基本表或命令執(zhí)行結(jié)果的記錄全集。通過(guò)Recordset

對(duì)象可對(duì)幾乎所有數(shù)據(jù)進(jìn)行操作。以查詢(xún)?yōu)橹?,也可以用?lái)更新數(shù)據(jù)。所有Recordset

對(duì)象均使用記錄(行)和字段(列)進(jìn)行構(gòu)造。任何時(shí)候,Recordset

對(duì)象所指的當(dāng)前記錄均為集合內(nèi)的單個(gè)記錄。理解為Recordset

對(duì)象有一個(gè)指針指向當(dāng)前記錄,可以移動(dòng)該指針以遍歷全部記錄。使用步驟使用的一般過(guò)程1創(chuàng)建Recordset對(duì)象

setrs=Server.CreateObject("ADODB.Recordset")2設(shè)置連接信息

setconn=Server.CreateObject("ADODB.Connection")conn.open"DSN=mydb"

rs.ActiveConnection=con3打開(kāi)數(shù)據(jù)集

rs.open"SQL語(yǔ)句"4處理并顯示數(shù)據(jù)使用步驟-續(xù)14處理并顯示數(shù)據(jù)

r=0'行計(jì)數(shù)

dountilrs.eof'還沒(méi)到記錄末重復(fù)

r=r+1c=0'列計(jì)數(shù)

foreachiteminrs.fields'當(dāng)前行的列集合

c=c+1 response.write"第"&r&"行第"&c&"列是"&&"值是"&item next

rs.MoveNext'后移一行

loop使用步驟-續(xù)25如需要將Recordset中的內(nèi)容保存到文件中

rs.Save"FileName",PersistFormat

PersistFormat可選項(xiàng),取值為

adPersistADTG(默認(rèn))使用專(zhuān)用的“AdvancedDataTablegram”格式保存。

adPersistXML使用XML格式保存。移動(dòng)和書(shū)簽方法MoveFirst

MoveLast

MoveNext

MovePrevious和MovenumRows[,Start]****Start

可選,字符串或變體型,為書(shū)簽。也可為下列BookmarkEnum

值之一:AdBookmarkCurrent

默認(rèn)。從當(dāng)前記錄開(kāi)始。AdBookmarkFirst

從首記錄開(kāi)始。AdBookmarkLast

從尾記錄開(kāi)始。Bookmark屬性設(shè)置或返回標(biāo)識(shí)Recordset

對(duì)象中當(dāng)前記錄的書(shū)簽。書(shū)簽只能在支持書(shū)簽功能的Recordset

對(duì)象中使用。移動(dòng)和書(shū)簽例varBookmark=rs.Bookmarkrs.Move0,varBookmarkrs.Move–1'回退同

rs.MovePreviousrs.Move1'前進(jìn)同rs.MoveNext增加新記錄AddNew[Fields,values]例varF=Array("xh","xm","nl")

varV=Array("B0101001","LiPing",19)

rs.AddNew

varF,varV或

rs.AddNew

rs("xh")=request.form("xh")

rs("xm")=request.form("xm")

rs("nl")=request.form("nl")最后再rs.Update

完成一條記錄的插入批量更新記錄rs.CursorType=adOpenKeysetrs.LockType=adLockBatchOptimisticrs.Open"xs","DSN=mydb",,,adCmdTable

DoUntilrs.EOF

xs("nl")=xs("nl")+1

rstTitles.MoveNext

Loop

rs.UpdateBatch'<==>rs.CancelBatch

rs.Close批量更新方法UpdateBatch

AffectRecordsCancelBatch

AffectRecords

參數(shù)AffectRecords

可選,決定UpdateBatch

CancelBatch方法所影響的記錄數(shù)adAffectCurrent只影響當(dāng)前記錄。adAffectGroup影響滿(mǎn)足當(dāng)前Filter屬性設(shè)置的記錄。必須將Filter屬性設(shè)置為某個(gè)有效的預(yù)定義常量才能使用該選項(xiàng)。adAffectAll(默認(rèn)值)。Recordset

對(duì)象中所有記錄,包括由于當(dāng)前Filter屬性設(shè)置而隱藏的任何記錄。UpdateBatch

另有adAffectAllChapters寫(xiě)入所有子集更改。

批量更新注意項(xiàng)記錄集的打開(kāi)涉及兩種參數(shù)CursorType和LockTypeCursorType取值(依次為0123):AdOpenForwardOnly

默認(rèn)值,同靜態(tài)游標(biāo),可提高性能。AdOpenKeyset

鍵集,不能訪(fǎng)問(wèn)他人刪除的記錄,也無(wú)法查看他人添加的記錄,但可看見(jiàn)他人更改的數(shù)據(jù)。AdOpenDynamic

動(dòng)態(tài),可以看見(jiàn)他人所作的添加、更改和刪除。允許在記錄集中進(jìn)行所有類(lèi)型的移動(dòng),但不包括提供者不支持的書(shū)簽操作。AdOpenStatic

靜態(tài),可以用來(lái)查找數(shù)據(jù)或生成報(bào)告的記錄集合的靜態(tài)副本??床灰?jiàn)他人所作的添加、更改或刪除操作結(jié)果批量更新注意項(xiàng)-續(xù)1LockType取值(依次為1234):adLockReadOnly

默認(rèn)值,只讀。無(wú)法更改數(shù)據(jù)。adLockPessimistic

悲觀式鎖定,確保能成功,通常在編輯時(shí)立即鎖定數(shù)據(jù)源的記錄。adLockOptimistic樂(lè)觀式鎖定,只在調(diào)用Update方法時(shí)鎖定記錄。adLockBatchOptimistic

樂(lè)觀式批更新。用于與立即更新模式相反的批更新模式。CursorType

和LockType都有四種取值,共有16種組合可用于批量更新的也很多,但如下的組合不行:批量更新注意項(xiàng)-續(xù)2CursorTypeLockType結(jié)果AdOpenForwardOnly僅前移0adLockOptimistic樂(lè)觀式鎖3數(shù)據(jù)錯(cuò)adLockBatchOptimistic樂(lè)觀式批更新鎖4語(yǔ)法錯(cuò)AdOpenDynamic

動(dòng)態(tài)2LockType中的AdLockReadOnly取值是只讀,即不能通過(guò)Recordset來(lái)更新數(shù)據(jù)的刪除delete[AffectRecords]

AffectRecords是可選項(xiàng),取值為

AdAffectCurrent

默認(rèn)。僅刪除當(dāng)前記錄。

AdAffectGroup

刪除滿(mǎn)足當(dāng)前

Filter屬性設(shè)置的記錄。要使用該選項(xiàng),必須先設(shè)置

Filter屬性。

AdAffectAll刪除所有記錄。

AdAffectAllChapters刪除所有子集記錄。如:

rs.delete

adAffectAll

rs.updatebatch同步和刷新Resync從基本數(shù)據(jù)庫(kù)刷新當(dāng)前Recordset

對(duì)象中的數(shù)據(jù)Requery

方法

通過(guò)重新執(zhí)行對(duì)象所基于的查詢(xún),更新Recordset對(duì)象中的數(shù)據(jù)。重新發(fā)出原始命令并再次檢索數(shù)據(jù),可使用Requery

方法刷新來(lái)自數(shù)據(jù)源的Recordset

對(duì)象的全部?jī)?nèi)容。調(diào)用該方法等于相繼調(diào)用Close

和Open

方法。如果正在編輯當(dāng)前記錄或者添加新記錄將產(chǎn)生錯(cuò)誤。在Recordset

對(duì)象打開(kāi)期間,定義游標(biāo)性質(zhì)(CursorType、LockType、MaxRecords

等)的屬性為只讀,因此Requery

方法只能刷新當(dāng)前游標(biāo)。要更改某個(gè)游標(biāo)屬性并查看結(jié)果,必須使用

Close方法使屬性再次成為讀/寫(xiě)。然后可以更改屬性設(shè)置并且調(diào)用Open方法重新打開(kāi)游標(biāo)。重視OpenOpenSource,ActiveConnection,CursorType,LockType,OptionsSource是SQL語(yǔ)句,表名也行

ActiveConnection是Connectioin對(duì)象,連接參數(shù)串也行

Options是Source的類(lèi)型可取值為

adCmdText

adCmdTable

adCmdTableDirect

adCmdStoredProc

adCmdUnknown

adCmdFile

adAsyncExecute

等這些參數(shù)都可以通過(guò)屬性先賦給Recordset對(duì)象,再簡(jiǎn)單的調(diào)用open打開(kāi)Filter為Recordset

中的數(shù)據(jù)指定篩選條件。R|W可以設(shè)置的值有:條件字符串由一個(gè)或多個(gè)用

AND或OR操作符連接的子句組成的字符串。需要時(shí)字段名加[],<、>、<=、>=、<>、=或LIKE(*%)書(shū)簽數(shù)組—指向Recordset

對(duì)象中記錄的唯一書(shū)簽值數(shù)組。如下某個(gè)值:AdFilterNone

刪除當(dāng)前篩選條件并恢復(fù)查看的所有記錄。AdFilterPendingRecords

允許只查看已更改且尚未發(fā)送到服務(wù)器的記錄。只能應(yīng)用于批更新模式。AdFilterAffectedRecords允許只查看上一次

Delete、Resync、UpdateBatch或CancelBatch

調(diào)用所影響的記錄。AdFilterFetchedRecords允許查看當(dāng)前緩沖區(qū)中的記錄,即上一次從數(shù)據(jù)庫(kù)中檢索記錄的調(diào)用結(jié)果。AdFilterConflictingRecords允許查看在上一次批更新中失敗的記錄。分頁(yè)顯示屬性PageSize

Recordset中一頁(yè)所包含的記錄數(shù),R|W,默認(rèn)值為10。使用PageSize

屬性可確定組成邏輯數(shù)據(jù)頁(yè)的記錄數(shù)。建立頁(yè)的大小允許使用AbsolutePage

屬性移動(dòng)到特定頁(yè)的第一個(gè)記錄。PageCount返回Recordset

對(duì)象包含的數(shù)據(jù)頁(yè)數(shù)。使用PageCount屬性可確定Recordset

對(duì)象中數(shù)據(jù)的頁(yè)數(shù)。-1表示Recordset

對(duì)象不支持該屬性。AbsolutePageR|W設(shè)置或返回當(dāng)前記錄所在的頁(yè)。取值為1到PageCount;或者返回如下常量:AdPosUnknownRecordset

為空,當(dāng)前位置未知,或者提供者不支持AbsolutePage屬性。AdPosBOF

當(dāng)前記錄指針位于BOF(即BOF屬性為T(mén)rue)。AdPosEOF

當(dāng)前記錄指針位于EOF(即EOF屬性為T(mén)rue)。分頁(yè)顯示例假定檢索結(jié)果有108條記錄

rs.PageSize=10

pcs=rs.PageCount

'則pcs=ceiling(108/10)=ceiling(10.8)=11

顯示request("page")頁(yè),

ip=cint(request("page")ifip<1thenip=1ifip>pcsthenip=pcs

rs.absolutePage=ip分頁(yè)顯示例-續(xù)

pc=0'頁(yè)內(nèi)計(jì)數(shù)

dowhilenotrs.eofan

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論