版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
ADO對象模型
——asp中的使用7ADO對象模型ADO對象模型創(chuàng)建:setcon=Server.CreateObject("ADODB.Connection")屬性:
ConnectionString
ConnectionTimeoutMode方法:
OpenExecuteBeginTrans
CommitTrans
RollbackTransClose
注意:Execute可返回Recordset對象訪問:seterrs=con.errors集合屬性:count元素屬性:sourcedescriptionRecordSet和Command對象,通過它們的屬性ActiveConnection可訪問集合Errors的上層元素connection,然后再用Errors屬性訪問集合。
seterrs=rs.ActiveConnection.Errorsseterrs=cmd.ActiveConnection.Errors顯示集合中的元素內(nèi)容
seterrs=rs.ActiveConnection.ErrorsForeachiteminerrs
response.write"錯誤源是:"&item.source
response.write"錯誤詳情:"&item.description
response.write"<hr>"nextADO對象模型創(chuàng)建:setcmd=Server.CreateObject("ADODB.Command")屬性:ActiveConnection
已打開的連接或連接參數(shù)字符串CommandText
設(shè)置SQL語句CommandType
指定命令類型以優(yōu)化性能CommandTimeout
設(shè)置等待命令執(zhí)行的秒數(shù)*Parameter(s) 定義參數(shù)化查詢或存儲過程參數(shù)*Prepared 執(zhí)行前是否保存命令的編譯版本方法:Execute 執(zhí)行命令并在適當(dāng)?shù)臅r候返回Recordset
對象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對象rs-再進(jìn)入二重循環(huán)處理rs中的所有數(shù)據(jù)
Recordset
對象Recordset對象概述來自基本表或命令執(zhí)行結(jié)果的記錄全集。通過Recordset
對象可對幾乎所有數(shù)據(jù)進(jìn)行操作。以查詢?yōu)橹?,也可以用來更新?shù)據(jù)。所有Recordset
對象均使用記錄(行)和字段(列)進(jìn)行構(gòu)造。任何時候,Recordset
對象所指的當(dāng)前記錄均為集合內(nèi)的單個記錄。理解為Recordset
對象有一個指針指向當(dāng)前記錄,可以移動該指針以遍歷全部記錄。使用步驟使用的一般過程1創(chuàng)建Recordset對象
setrs=Server.CreateObject("ADODB.Recordset")2設(shè)置連接信息
setconn=Server.CreateObject("ADODB.Connection")conn.open"DSN=mydb"
rs.ActiveConnection=con3打開數(shù)據(jù)集
rs.open"SQL語句"4處理并顯示數(shù)據(jù)使用步驟-續(xù)14處理并顯示數(shù)據(jù)
r=0'行計數(shù)
dountilrs.eof'還沒到記錄末重復(fù)
r=r+1c=0'列計數(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))使用專用的“AdvancedDataTablegram”格式保存。
adPersistXML使用XML格式保存。移動和書簽方法MoveFirst
MoveLast
MoveNext
MovePrevious和MovenumRows[,Start]****Start
可選,字符串或變體型,為書簽。也可為下列BookmarkEnum
值之一:AdBookmarkCurrent
默認(rèn)。從當(dāng)前記錄開始。AdBookmarkFirst
從首記錄開始。AdBookmarkLast
從尾記錄開始。Bookmark屬性設(shè)置或返回標(biāo)識Recordset
對象中當(dāng)前記錄的書簽。書簽只能在支持書簽功能的Recordset
對象中使用。移動和書簽例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影響滿足當(dāng)前Filter屬性設(shè)置的記錄。必須將Filter屬性設(shè)置為某個有效的預(yù)定義常量才能使用該選項(xiàng)。adAffectAll(默認(rèn)值)。Recordset
對象中所有記錄,包括由于當(dāng)前Filter屬性設(shè)置而隱藏的任何記錄。UpdateBatch
另有adAffectAllChapters寫入所有子集更改。
批量更新注意項(xiàng)記錄集的打開涉及兩種參數(shù)CursorType和LockTypeCursorType取值(依次為0123):AdOpenForwardOnly
默認(rèn)值,同靜態(tài)游標(biāo),可提高性能。AdOpenKeyset
鍵集,不能訪問他人刪除的記錄,也無法查看他人添加的記錄,但可看見他人更改的數(shù)據(jù)。AdOpenDynamic
動態(tài),可以看見他人所作的添加、更改和刪除。允許在記錄集中進(jìn)行所有類型的移動,但不包括提供者不支持的書簽操作。AdOpenStatic
靜態(tài),可以用來查找數(shù)據(jù)或生成報告的記錄集合的靜態(tài)副本。看不見他人所作的添加、更改或刪除操作結(jié)果批量更新注意項(xiàng)-續(xù)1LockType取值(依次為1234):adLockReadOnly
默認(rèn)值,只讀。無法更改數(shù)據(jù)。adLockPessimistic
悲觀式鎖定,確保能成功,通常在編輯時立即鎖定數(shù)據(jù)源的記錄。adLockOptimistic樂觀式鎖定,只在調(diào)用Update方法時鎖定記錄。adLockBatchOptimistic
樂觀式批更新。用于與立即更新模式相反的批更新模式。CursorType
和LockType都有四種取值,共有16種組合可用于批量更新的也很多,但如下的組合不行:批量更新注意項(xiàng)-續(xù)2CursorTypeLockType結(jié)果AdOpenForwardOnly僅前移0adLockOptimistic樂觀式鎖3數(shù)據(jù)錯adLockBatchOptimistic樂觀式批更新鎖4語法錯AdOpenDynamic
動態(tài)2LockType中的AdLockReadOnly取值是只讀,即不能通過Recordset來更新數(shù)據(jù)的刪除delete[AffectRecords]
AffectRecords是可選項(xiàng),取值為
AdAffectCurrent
默認(rèn)。僅刪除當(dāng)前記錄。
AdAffectGroup
刪除滿足當(dāng)前
Filter屬性設(shè)置的記錄。要使用該選項(xiàng),必須先設(shè)置
Filter屬性。
AdAffectAll刪除所有記錄。
AdAffectAllChapters刪除所有子集記錄。如:
rs.delete
adAffectAll
rs.updatebatch同步和刷新Resync從基本數(shù)據(jù)庫刷新當(dāng)前Recordset
對象中的數(shù)據(jù)Requery
方法
通過重新執(zhí)行對象所基于的查詢,更新Recordset對象中的數(shù)據(jù)。重新發(fā)出原始命令并再次檢索數(shù)據(jù),可使用Requery
方法刷新來自數(shù)據(jù)源的Recordset
對象的全部內(nèi)容。調(diào)用該方法等于相繼調(diào)用Close
和Open
方法。如果正在編輯當(dāng)前記錄或者添加新記錄將產(chǎn)生錯誤。在Recordset
對象打開期間,定義游標(biāo)性質(zhì)(CursorType、LockType、MaxRecords
等)的屬性為只讀,因此Requery
方法只能刷新當(dāng)前游標(biāo)。要更改某個游標(biāo)屬性并查看結(jié)果,必須使用
Close方法使屬性再次成為讀/寫。然后可以更改屬性設(shè)置并且調(diào)用Open方法重新打開游標(biāo)。重視OpenOpenSource,ActiveConnection,CursorType,LockType,OptionsSource是SQL語句,表名也行
ActiveConnection是Connectioin對象,連接參數(shù)串也行
Options是Source的類型可取值為
adCmdText
adCmdTable
adCmdTableDirect
adCmdStoredProc
adCmdUnknown
adCmdFile
adAsyncExecute
等這些參數(shù)都可以通過屬性先賦給Recordset對象,再簡單的調(diào)用open打開Filter為Recordset
中的數(shù)據(jù)指定篩選條件。R|W可以設(shè)置的值有:條件字符串由一個或多個用
AND或OR操作符連接的子句組成的字符串。需要時字段名加[],<、>、<=、>=、<>、=或LIKE(*%)書簽數(shù)組—指向Recordset
對象中記錄的唯一書簽值數(shù)組。如下某個值:AdFilterNone
刪除當(dāng)前篩選條件并恢復(fù)查看的所有記錄。AdFilterPendingRecords
允許只查看已更改且尚未發(fā)送到服務(wù)器的記錄。只能應(yīng)用于批更新模式。AdFilterAffectedRecords允許只查看上一次
Delete、Resync、UpdateBatch或CancelBatch
調(diào)用所影響的記錄。AdFilterFetchedRecords允許查看當(dāng)前緩沖區(qū)中的記錄,即上一次從數(shù)據(jù)庫中檢索記錄的調(diào)用結(jié)果。AdFilterConflictingRecords允許查看在上一次批更新中失敗的記錄。分頁顯示屬性PageSize
Recordset中一頁所包含的記錄數(shù),R|W,默認(rèn)值為10。使用PageSize
屬性可確定組成邏輯數(shù)據(jù)頁的記錄數(shù)。建立頁的大小允許使用AbsolutePage
屬性移動到特定頁的第一個記錄。PageCount返回Recordset
對象包含的數(shù)據(jù)頁數(shù)。使用PageCount屬性可確定Recordset
對象中數(shù)據(jù)的頁數(shù)。-1表示Recordset
對象不支持該屬性。AbsolutePageR|W設(shè)置或返回當(dāng)前記錄所在的頁。取值為1到PageCount;或者返回如下常量:AdPosUnknownRecordset
為空,當(dāng)前位置未知,或者提供者不支持AbsolutePage屬性。AdPosBOF
當(dāng)前記錄指針位于BOF(即BOF屬性為True)。AdPosEOF
當(dāng)前記錄指針位于EOF(即EOF屬性為True)。分頁顯示例假定檢索結(jié)果有108條記錄
rs.PageSize=10
pcs=rs.PageCount
'則pcs=ceiling(108/10)=ceiling(10.8)=11
顯示request("page")頁,
ip=cint(request("page")ifip<1thenip=1ifip>pcsthenip=pcs
rs.absolutePage=ip分頁顯示例-續(xù)
pc=0'頁內(nèi)計數(shù)
dowhilenotrs.eofan
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 拆遷合同的修改與終止
- 2024【變壓器租賃合同范本】變壓器安裝合同范本
- 市場租賃合同糾紛處理指南
- 2024年家政服務(wù)合同協(xié)議書
- 2024技術(shù)顧問聘用合同書范文
- 辦公家具項(xiàng)目合作意向書
- 2024年房屋分配合同模板
- 勞動合同解除與經(jīng)濟(jì)補(bǔ)償
- 數(shù)據(jù)錄入與維護(hù)服務(wù)合同范本
- 二手工作服購銷合同
- 道德與法治八上八上8.2《堅持國家利益至上》教學(xué)設(shè)計
- 2024年全國各地中考試題分類匯編:作文題目
- 工程代收款付款協(xié)議書范文模板
- GB/T 42455.2-2024智慧城市建筑及居住區(qū)第2部分:智慧社區(qū)評價
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識
- 2024廣西專業(yè)技術(shù)人員繼續(xù)教育公需科目參考答案(97分)
- YYT 0653-2017 血液分析儀行業(yè)標(biāo)準(zhǔn)
- 刑事受害人授權(quán)委托書范本
- 《文明上網(wǎng)健康成長》的主題班會
- 框架結(jié)構(gòu)冬季施工方案
- 小學(xué)漢語拼音字母表卡片自制(四線格版)Word編輯
評論
0/150
提交評論