久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Recordset記錄集對象的屬性和方法(一)[Access軟件網(wǎng)]

 昵稱2548375 2018-07-21

時(shí) 間:2012-07-18 08:21:27
作 者:宏鵬(轉(zhuǎn)載)   ID:21115  城市:上海
 
 

Recordset對象的作用是由數(shù)據(jù)庫返回記錄集,。根據(jù)查詢結(jié)果返回一個(gè)包含所查詢數(shù)據(jù)的記錄集,,然后顯示在頁面上,。因?yàn)閯h除、更新,、添加操作不需要返回記錄集,,因此可以直接使用連接對象或是命令對象的Exexut方法,但是利用記錄集對象有時(shí)會更簡單,,此外,,通過記錄集對象能夠?qū)崿F(xiàn)比較復(fù)雜的數(shù)據(jù)庫管理任務(wù),比如要采用分頁顯示記錄就必須使用記錄集對象,。
Recordset對象可以用來代表表中的記錄,,可以把記錄集看成是一張?zhí)摂M的表格,包含一條或多條記錄(行),,每條記錄包含一個(gè)或多個(gè)字段,,但任何時(shí)候只有一條記錄為當(dāng)前記錄。
可以在非顯式建立連接對象的情況下,,直接打開一個(gè)帶有查詢的記錄集,,或是對命令對象的查詢返回一個(gè)記錄集。ADO提供這種靈活性,,可以用最簡單的方式指明一個(gè)字符串來說明連接方式,,從而得到數(shù)據(jù)庫的查詢結(jié)果,ADO會自動創(chuàng)建所需要的連接對象,。當(dāng)然也可以顯式創(chuàng)建連接對象和命令對象,,這樣可以獲得更多的靈活性,實(shí)現(xiàn)更為強(qiáng)大的功能,。
一,、 建立Recordset對象
創(chuàng)建記錄集的方法主要有兩種??梢韵冉⑦B接對象,,再創(chuàng)建記錄集對象;也可以在非顯式建立連接對象的情況下,,創(chuàng)建記錄集對象。
第一種,,先建立連接對象,,再創(chuàng)建記錄集對象,用法見下面的范例,。
范例6-23:先建立連接對象,,再創(chuàng)建記錄集對象
<%
Set db=Server.CreateObject("ADODB.Recordset") ' 先建立連接對象
db.Open"zbsdbbszb"
Set rs=db.Execute(Select * from article) ' 建立記錄集對象rs
%>
注意:為了說明問題的方便,給記錄集對象取名為rs,,本書下面的實(shí)例中記錄集對象名均為rs,。
第二種,,在非顯式建立連接對象的情況下,用Server對象的CreatObject方法建立并打開記錄集對象,,語法如下:
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open參數(shù)
Open方法的參數(shù)見表6-16,。
6-16 Open方法的參數(shù)
參數(shù)
說明
Source
數(shù)據(jù)庫查詢信息
ActiveConnection
數(shù)據(jù)庫連接信息
CursorType
記錄集中的指針類型,可選,,見表6-17
LockType
鎖定類型,,可選,見表6-18
Options
數(shù)據(jù)庫查詢信息類型,,可選,,見表6-19
CursorType參數(shù)值表6-17
6-17 CursorType參數(shù)值
參數(shù)
說明
AdOpenForwardOnly
0
向前指針,默認(rèn)值,。只能用MoveNext方法或GetRows方法向前單向移動指針,,所耗系統(tǒng)資源最少,執(zhí)行速度也最快,,但很多屬性和方法將不能用
AdOpenKeyset
1
鍵盤指針,,記錄集中可以前后移動。某一用戶修改數(shù)據(jù)后,,其他用戶可以立即顯示,,但禁止查看其他用戶添加和刪除的記錄
AdOpenDynamic
2
動態(tài)指針,記錄集中可以前后移動,。所有修改會立即在其他客戶端顯示,,功能強(qiáng)大,但所耗系統(tǒng)資源也多
AdOpenStatic
3
靜態(tài)指針,,記錄集中可以前后移動,。所有修改不會在其他客戶端顯示
說明:
關(guān)于指針(又稱游標(biāo))。所謂記錄集,,如同一個(gè)電子表格,,包含所獲取的若干記錄,每條記錄又包含若干字段,。如果記錄不為空,,打開記錄集后,指針指向第一條記錄,??梢酝ㄟ^移動指針在記錄集中漫游,指針?biāo)赶虻挠涗洖楫?dāng)前記錄,,當(dāng)前記錄只能有一條,。
在默認(rèn)情況下,當(dāng)打開記錄集,,為向前指針,,只能用MoveNext方法向前單向移動指針,,其他操作不受支持。如果需要編輯,、添加和刪除記錄,,想使用可前后移動的指針,并且需要看到其他用戶的對數(shù)據(jù)庫的修改,,就需要使用其他類型的指針,。
LockType
參數(shù)值表6-18
6-18 LockType參數(shù)值
參數(shù)
說明
AdLockReadOnly
1
只讀,默認(rèn)值,,適用于僅瀏覽數(shù)據(jù)
AdLockPessimistic
2
只能同時(shí)被一個(gè)用戶所修改,,修改時(shí)鎖定,完畢解鎖
AdLockOptimistic
3
可以同時(shí)被多個(gè)用戶所修改,,直到用update方法更新記錄才鎖定
AdLockBatchOptimistic
4
數(shù)據(jù)可以被修改,,且不鎖定其他用戶,指定數(shù)據(jù)成批更新
說明:
鎖定目的是確保數(shù)據(jù)的完整性,,以防止更改被覆蓋,。
當(dāng)不需要修改記錄,應(yīng)該使用默認(rèn)的只讀記錄集,,這樣執(zhí)行速度快,,消耗系統(tǒng)資源少;如果是需要修改記錄,,一般情況下,,選擇取值2,記錄只鎖定一下,,即可保護(hù)更改操作,,也不消耗過多的系統(tǒng)資源。
Options
參數(shù)值表6-19
6-19 Options參數(shù)值
參數(shù)
說明
AdCmdUnkown
-1
表示CommandText參數(shù)類型無法確定,,默認(rèn)值
AdCmdText
1
表示CommandText參數(shù)是命令類型
AdCmdTable
2
表示CommandText參數(shù)是表名稱
AdCmdStoreProc
3
表示CommandText參數(shù)是存儲過程名稱
范例6-24:建立記錄集對象
<%
Set rs=Server.CreateObject("ADODB. Recordset")
rs.Open" Select * from article","dsn=zbsdbbszb" '
Open方法中給出數(shù)據(jù)源
%>
說明:
非顯式創(chuàng)建連接對象和命令對象,。
▲ Select * from article
這個(gè)查詢字符串定義后,記錄集對象會自動把它轉(zhuǎn)換到一個(gè)命令對象上,。
▲ dsn=zbsdbbszb
這是創(chuàng)建連接對象的連接字符串,。
Recordset記錄集對象的屬性
Recordset
記錄集對象常用屬性見表6-20,。
6-20 Recordset記錄集對象常用屬性見表
屬性
說明
Source
指示記錄集對象中數(shù)據(jù)的來源(命令對象名或SQL語句或表名)
ActiveConnection
連接對象名或包含數(shù)據(jù)庫的連接信息的字符串
CursorType
記錄集中的指針類型,,可選,見表6-16
LockType
鎖定類型,,可選,見表6-17
MaxRecors
控制從服務(wù)器獲取的記錄集的最大記錄數(shù)
CursorLocation
控制數(shù)據(jù)處理是在客戶端還是在服務(wù)器端
Filter
控制要顯示的內(nèi)容
Bof
記錄集的開頭
Eof
記錄集的結(jié)尾
RecordCount
記錄集總數(shù)
PageSize
分頁顯示時(shí)每一頁的記錄數(shù)
PageCount
分頁顯示時(shí)數(shù)據(jù)頁的總頁數(shù)
AbsolutePage
當(dāng)前指針?biāo)诘臄?shù)據(jù)頁
AbsolutePosition
當(dāng)前指針?biāo)诘挠涗浶?/span>
Recordset記錄集對象常用屬性具體說明如下,。
1
Source
用于設(shè)置數(shù)據(jù)庫的查詢信息,,查詢信息可以是命令對象名或SQL語句或表名,,語法如下:
rs.Source=
查詢信息
2
ActiveConnection
用于設(shè)置數(shù)據(jù)庫的連接信息,連接信息可以是連接對象名或包含數(shù)據(jù)庫的連接信息的字符串,,語法如下:
rs.ActiveConnection=
連接信息
3
CursorType
用于設(shè)置記錄集指針類型,,取值參見表6-17,語法如下:
rs.CursorType=

默認(rèn)為0,,即指針只能前移,。如果要讓指針自由移動,一般設(shè)為鍵盤指針1,。
4
LockType
用于設(shè)置記錄集的鎖定類型,。取值參見表6-18,語法如下:
rs.LockType=

默認(rèn)為1,,只讀屬性,。如果要利用記錄集對象進(jìn)行添加、刪除,、更新等操作,,只能由一個(gè)用戶修改,一般需要設(shè)置其屬性為2,。
5
MaxRecors
用于設(shè)定從服務(wù)器上得到的最大記錄數(shù),,語法如下:
rs.MaxRecors=
最大記錄數(shù)
通常這種方法不常用,而是使用SQL語句來指定所得到的最大記錄數(shù),,”Select Top 整數(shù)…”,。
6
CursorLocation
用于設(shè)置數(shù)據(jù)處理是在客戶端還是在服務(wù)器端。取值參見表6-21,,語法如下:
rs.CursorLocation =
6-21 CursorLocation參數(shù)值
參數(shù)
說明
AdUseClient
1
客戶端處理
AdUseServer
2
服務(wù)器端處理
AdUseClientBatch
3
動態(tài)處理,,在客戶端處理,處理時(shí)連接切斷,,處理完畢重新連接
有的時(shí)候,,為了減輕服務(wù)器的工作負(fù)擔(dān),可以根據(jù)情況的需要,,設(shè)置在客戶端處理,。
7
Filter
用于設(shè)置要顯示的內(nèi)容。取值參見表6-22,,語法如下:
rs.Filter =
6-22 Filter參數(shù)值
參數(shù)
說明
AdFilterNone
0
顯示所有數(shù)據(jù)
AdFilterpendRecords
1
只顯示沒有修改過的數(shù)據(jù)
AdFilterAffectedRecords
2
只顯示最近修改過的數(shù)據(jù)
AdFilterFetchedRecords
3
只顯示暫存于客戶端緩存中的數(shù)據(jù)
8BOF
用于判斷當(dāng)前記錄指針是否在記錄集的開頭,,如在開頭,返回True,,否則返回Falsh,。如果記錄集為空,也返回True,。
9
EOF
用于判斷當(dāng)前記錄指針是否在記錄集的結(jié)尾,,如在結(jié)尾,,返回True,否則返回Flash,。如果記錄集為空,,也返回True
記錄集有兩個(gè)特殊位置:BOF EOF,。BOF表示記錄集的開頭,,位于第一條記錄之前;EOF表示記錄集結(jié)尾,,位于最后一條記錄之后,。BOF True,當(dāng)前指針指到 RecordSet 的第一條記錄,; EOF True,,當(dāng)前指標(biāo)指到 RecordSet 的最后一條記錄。如果記錄集不為空,,指針可以在BOF,、所有記錄和EOF移動。如果記錄集為空,,此時(shí)指針同時(shí)指向BOF EOF,,它們的值均為True
具體判斷如下:若當(dāng)前記錄的位置是在一個(gè) Recordset 對象第一行記錄之前時(shí),, BOF 屬性返回 True,,反之則返回 False。,;若當(dāng)前記錄的位置是在一個(gè) Recordset 對象最后一行記錄之后時(shí),,EOF 屬性返回 True,反之則返回 False,;BOF EOF 都為 False,,表示指標(biāo)位于 RecordSet 的當(dāng)中;BOF EOF 都為 True,,在 RecordSet 里沒有任何記錄,。 
從以上可知,通過檢驗(yàn) BOF EOF 屬性,,可以得知當(dāng)前指針?biāo)赶虻?/span> RecordSet 的位置,,使用 BOF EOF 屬性,可以得知一個(gè) Recordset 對象是否包含有記錄或者得知移動記錄行是否已經(jīng)超出該 Recordset 對象的范圍,。
判斷記集錄是否為空的代碼如下:
< %
if not rs.bof and rs.eof then '
如果不是開頭,,也不是結(jié)尾,則執(zhí)行

End if
%>
循環(huán)輸出記錄集記錄的代碼如下:
< %
Do while not rs.eof '
如果沒有到達(dá)記錄集未尾,則循環(huán)輸出下面的記錄

Rs.MoveNext
Loop
%>
10
RecordCount
用于返回記錄集中的記錄總數(shù),。我們常用 RecordCount 屬性來找出一個(gè) Recordset 對象包括多少條記錄,。例如: 
< % Rsponse.Write rs.RecordCount %>
要注意的是,,使用RecordCount必須設(shè)置指針類型為鍵盤指針1或是靜態(tài)指針3,。
11
PageCount
用于設(shè)置分頁顯示時(shí)數(shù)據(jù)頁的總數(shù)。使用PageCount 屬性,,決定 Recordset 對象包括多少的數(shù)據(jù),。這里的是指數(shù)據(jù)記錄的集合,大小等于 PageSize 屬性的設(shè)定,,即使最后一頁的記錄數(shù)比 PageSize 的值少,,最后一頁也算是 PageCount 的一頁。
12
PageSize 屬性 
用于設(shè)置分頁時(shí)每一頁所顯示的記錄數(shù),。PageSize 屬性是決定 ADO 存取數(shù)據(jù)庫時(shí)如何分頁顯示的關(guān)鍵,,使用它就可以決定多少記錄組成一個(gè)邏輯上的“1?! ?/span> 
10,、1112條屬性通常是用于分頁顯示,,具體運(yùn)用見下面的范例,。
13
AbsolutePage
用于設(shè)置當(dāng)前指針位于哪一頁。語法如下:
rs.AbsolutePage =
整數(shù)值
14
AbsolutePosition
用于設(shè)置當(dāng)前指針?biāo)诘挠涗浶?。語法如下:
rs.AbsolutePosition =
整數(shù)值
后面的這些屬性使用時(shí),,一般需要設(shè)置指針類型為鍵盤指針1。 

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多