麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 擴展 > ADO > 正文

三天學好ADO之第三天

2024-09-06 20:31:23
字體:
來源:轉載
供稿:網友
 

今天來說一下Recordset對象的一些方法。
1、AddNew 方法
創建可更新 Recordset 對象的新記錄。
recordset.AddNew FieldList, Values
FieldList   可選。新記錄中字段的單個名稱、一組名稱或序號位置。
Values   可選。新記錄中字段的單個或一組值。如果 Fields 是數組,那么 Values 也必須是有相同成員數的數組,否則將發生錯誤。字段名稱的次序必須與每個數組中的字段值的次序相匹配。

我們一般是
rs.addnew
rs("xx")=xx
rs("xx")=xx
rs.update
需要注意的是在立即更新模式(調用 Update 方法時提供者會立即將更改寫入基本數據源)下,調用不帶參數的 AddNew 方法可將 EditMode 屬性設置為 adEditAdd。提供者將任何字段值的更改緩存在本地。調用 Update 方法可將新記錄傳遞到數據庫并將 EditMode 屬性重置為 adEditNone。如果傳送了 Fields 和 Values 參數,ADO 則立即將新記錄傳遞到數據庫(無須調用 Update),且 EditMode 屬性值沒有改變 (adEditNone)。
可能大家會問在ASP中使用ADO的AddNew方法和直接使用“Insert into...”語句有和不同?那種方式更好?答:ADO的AddNew方法只是將“Insert into ”語句封裝了起來,所以,當對大量數據進行操作的時候,直接使用SQL語句將會大大加快存取數據的速度,因為他減少了ADO的“翻譯”時間。

2、Delete 方法
刪除當前記錄或記錄組。
recordset.Delete AffectRecords

AffectRecords   AffectEnum 值,確定 Delete 方法所影響的記錄數目,該值可以是下列常量之一。
AdAffectCurrent 默認。僅刪除當前記錄。
AdAffectGroup 刪除滿足當前 Filter 屬性設置的記錄。要使用該選項,必須將 Filter 屬性設置為有效的預定義常量之一。
adAffectAll 刪除所有記錄。
adAffectAllChapters 刪除所有子集記錄。
使用立即更新模式將在數據庫中進行立即刪除,否則記錄將標記為從緩存刪除,實際的刪除將在調用 Update 方法時進行。

3、Update 方法
保存對 Recordset 對象的當前記錄所做的所有更改
recordset.Update Fields, Values
Fields   可選。變體型,代表單個名稱;或變體型數組,代表需要修改的字段(一個或多個)名稱及序號位置。
Values   可選。變體型,代表單個值;或變體型數組,代表新記錄中字段(單個或多個)值。
如果希望取消對當前記錄所做的任何更改或者放棄新添加的記錄,則必須調用 CancelUpdate 方法。

4、CancelUpdate 方法
recordset.CancelUpdate
使用 CancelUpdate 方法可取消對當前記錄所作的任何更改或放棄新添加的記錄。在調用 Update 方法后將無法撤消對當前記錄或新記錄所做的更改,如果在調用 CancelUpdate 方法時添加新記錄,則調用 AddNew 之前的當前記錄將再次成為當前記錄。如果尚未更改當前記錄或添加新記錄,調用 CancelUpdate 方法將產生錯誤。

5、Find 方法
搜索 Recordset 中滿足指定標準的記錄。如果滿足標準,則記錄集位置設置在找到的記錄上,否則位置將設置在記錄集的末尾。
Find (criteria, SkipRows, searchDirection, start)
criteria   字符串,包含指定用于搜索的列名、比較操作符和值的語句。
SkipRows    可選,長整型值,其默認值為零,它指定當前行或 start 書簽的位移以開始搜索。
searchDirection    可選的 SearchDirectionEnum 值,指定搜索應從當前行還是下一個有效行開始。其值可為 adSearchForward 或

adSearchBackward。搜索是在記錄集的開始還是末尾結束由 searchDirection 值決定。
start    可選,變體型書簽,用作搜索的開始位置。
criteria “比較操作符”可以是“>”(大于)、“<”(小于)、“=”(等于)、“>=”(大于或等于)、“<=”(小于或等于)、“<>”

(不等于)或“like”(模式匹配)。 criteria 中的值可以是字符串、浮點數或者日期。字符串值以單引號分界(如“state = 'WA'”)。

日期值以“#”(數字記號)分界(如“start_date > #7/22/97#”)。
需要注意的是find是不支持多字段。但是可以用filter實現。"name='abc'"AND "city='sh'" 是不允許的

6、Move 方法
移動 Recordset 對象中當前記錄的位置
recordset.Move NumRecords, Start
NumRecords    帶符號長整型表達式,指定當前記錄位置移動的記錄數。
Start    可選,字符串或變體型,用于計算書簽。也可為下列值之一:
AdBookmarkCurrent 默認。從當前記錄開始。
AdBookmarkFirst 從首記錄開始。
AdBookmarkLast 從尾記錄開始。
需要注意的是:
(1)如果 NumRecords 參數大于零,則當前記錄位置將向前移動(向記錄集的末尾)。如果 NumRecords 小于零,則當前記錄位置向后移動(向記錄集的開始)。
(2)從空的 Recordset 對象調用 Move 方法將產生錯誤。
(3)如果 Move 調用將當前記錄位置移動到首記錄之前,則 ADO 將當前記錄放置在記錄集(BOF 為 True)的首記錄之前。在 BOF 屬性已經為 True 時試圖向后移動將產生錯誤;如果 Move 調用將當前記錄位置移動到尾記錄之后,則 ADO 將當前記錄放置在記錄集(EOF 為 True)的尾記錄之后。在 EOF 屬性已經為 True 時試圖向前移動將產生錯誤。

7、MoveFirst、MoveLast、MoveNext 和 MovePrevious 方法
在指定 Recordset 對象中移動到第一個、最后一個、下一個或前一個記錄并使該記錄成為當前記錄。
recordset.{MoveFirst | MoveLast | MoveNext | MovePrevious}
需要注意的是:
(1)使用 MoveNext 方法將當前記錄向前移動一個記錄(向 Recordset 的底部)。如果最后一個記錄是當前記錄并且調用 MoveNext 方法,則 ADO 將當前記錄設置到 Recordset (EOF 為 True)的尾記錄之后。當 EOF 屬性已經為 True 時試圖向前移動將產生錯誤。
(2)使用 MovePrevious 方法將當前記錄位置向后移動一個記錄(向記錄集的頂部)。Recordset 對象必須支持向后游標移動;否則方法調用將產生錯誤。如果首記錄是當前記錄并且調用 MovePrevious 方法,則 ADO 將當前記錄設置在 Recordset (BOF 為 True)的首記錄之前。而 BOF 屬性為 True 時向后移動將產生錯誤。

8、Clone 方法
創建與現有 Recordset 對象相同的復制 Recordset 對象。可選擇指定該副本為只讀。
Set rstDuplicate = rstOriginal.Clone
rstDuplicate   對象變量,標識正在創建的復制 Recordset 對象。
rstOriginal   對象變量,標識要被復制的 Recordset 對象。
使用 Clone 方法可創建多個 Recordset 對象副本,這對于希望在給定的記錄組中保留多個當前記錄十分有用。使用 Clone 方法比使用與初始定義相同的定義創建和打開新 Recordset 對象要有效得多。
也就是說
rs.open exec,conn,1,1
rs2.open exec,conn,1,1
應該這么改寫
rs.open exec,conn,1,1
rs2=rs.clone

需要注意的是:
(1)新創建副本的當前記錄將設置為首記錄。
(2)關閉原始 Recordset 時并不關閉它的副本,而關閉某個副本也將不關閉原始 Recordset 或任何其他副本。

9、Close 方法
關閉打開的對象及任何相關對象。
object.Close
需要注意的是:
(1)使用 Close 方法可關閉Recordset 對象以便釋放所有關聯的系統資源。關閉對象并非將它從內存中刪除,可以更改它的屬性設置并且在

此后再次打開。要將對象從內存中完全刪除,可將對象變量設置為 Nothing。
(2)如果正在立即更新模式下進行編輯,調用 Close 方法將產生錯誤,應首先調用 Update 或 CancelUpdate 方法。


10、Open 方法,為什么最后說這個,因為前面的各項屬性方法沒有弄清楚,我們是不會理解CursorType參數的
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
Recordset對象可以通過Source屬性來連接Command對象。Source參數可以是一個Command對象名稱、一段SQL命令、一個指定的數據表名稱或是一個Stored Procedure。假如省略這個參數,系統則采用Recordset對象的Source屬性。ActiveConnection

Recordset對象可以通過ActiveConnection屬性來連接Connection對象。這里的ActiveConnection可以是一個Connection對象或是一串包含數據

庫連接信息(ConnectionString)的字符串參數。CursorType

Recordset對象Open方法的CursorType參數表示將以什么樣的游標類型啟動數據,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及ad

OpenStatic,分述如下:

--------------------------------------------------------------

常數 常數值 說明

-------------------------------------------------------------

adOpenForwardOnly 0 缺省值,啟動一個只能向前移動的游標(Forward Only)。

adOpenKeyset 1 啟動一個Keyset類型的游標。

adOpenDynamic 2 啟動一個Dynamic類型的游標。

adOpenStatic 3 啟動一個Static類型的游標。

-------------------------------------------------------------

以上幾個游標類型將直接影響到Recordset對象所有的屬性和方法,以下列表說明他們之間的區別。

Recordset屬性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic


AbsolutePage 不支持 不支持 可讀寫 可讀寫

AbsolutePosition 不支持 不支持 可讀寫 可讀寫

BOF 只讀 只讀 只讀 只讀

CursorType 可讀寫 可讀寫 可讀寫 可讀寫

EOF 只讀 只讀 只讀 只讀

Filter 可讀寫 可讀寫 可讀寫 可讀寫

LockType 可讀寫 可讀寫 可讀寫 可讀寫

PageCount 不支持 不支持 只讀 只讀

PageSize 可讀寫 可讀寫 可讀寫 可讀寫

RecordCount 不支持 不支持 只讀 只讀

AddNew 支持 支持 支持 支持

CancelBatch 支持 支持 支持 支持

CancelUpdate 支持 支持 支持 支持

Close 支持 支持 支持 支持

Delete 支持 支持 支持 支持

Move 不支持 支持 支持 支持

MoveFirst 支持 支持 支持 支持

MoveLast 不支持 支持 支持 支持

MoveNext 支持 支持 支持 支持

MovePrevious 不支持 支持 支持 支持

Open 支持 支持 支持 支持

Update 支持 支持 支持 支持

UpdateBatch 支持 支持 支持 支持

--------------------------------------------------------------

Recordset對象Open方法的LockType參數表示要采用的Lock類型,如果忽略這個參數,那么系統會以Recordset對象的LockType屬性為預設值。LockType參數包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:

常數 常數值 說明

--------------------------------------------------------------

adLockReadOnly 1 缺省值,Recordset對象以只讀方式啟動,無法運行AddNew、Update及Delete等方法

adLockPrssimistic 2 當數據源正在更新時,系統會暫時鎖住其他用戶的動作,以保持數據一致性。

adLockOptimistic 3 當數據源正在更新時,系統并不會鎖住其他用戶的動作,其他用戶可以對數據進行增、刪、改的操作。

adLockBatchOptimistic 4 當數據源正在更新時,其他用戶必須將CursorLocation屬性改為adUdeClientBatch才能對數據進行增、刪、改的操作。

需要注意的是:
如果數據源沒有返回記錄,那么提供者將 BOF 和 EOF 屬性同時設置為 True,并且不定義當前記錄位置。如果游標類型允許,仍然可以將新數據添加到該空 Recordset 對象。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 色阁阁69婷婷 | 日韩一级片一区二区三区 | 一级做人爱c黑人影片 | 中文字幕四区 | 欧美一级精品片在线看 | 亚洲欧美国产精品va在线观看 | 在线 日本 制服 中文 欧美 | 久久亚洲网 | 欧美精品黄色 | 亚洲天堂中文字幕在线观看 | 久久露脸国语精品国产91 | 黄色av片三级三级三级免费看 | 国产成人高清成人av片在线看 | 91 免费视频 | 黄视频免费在线观看 | 日日狠狠久久偷偷四色综合免费 | 亚洲婷婷日日综合婷婷噜噜噜 | 欧美一级特黄aaaaaa在线看首页 | 91精品国| 一级黄色欧美 | 成人午夜视频在线观看免费 | 中文字幕视频在线播放 | 99国产精品国产免费观看 | 好吊色欧美一区二区三区四区 | 免费欧美一级视频 | 久久国产精品99国产 | 欧美一级淫片免费视频1 | 91色综合综合热五月激情 | www.69色| 毛片视频大全 | 新久草视频 | 色a综合| 欧美精品久久久久久久久久 | 欧美久久久一区二区三区 | 激情久久婷婷 | 亚洲成人中文字幕在线 | japanese massage tube| 永久av在线免费观看 | 色婷婷久久久 | 一本一本久久a久久精品综合小说 | 国产1区2区3区在线观看 |