今天說一下Recordset 對象的屬性
1、CursorType 屬性
AdOpenForwardOnly: 僅向前游標,默認值。除了只能在記錄中向前滾動外,與靜態(tài)游標相同。當只需要在記錄集中單向移動時,使用它可提高性能。(顧名思義,這種游標只能向前移動。然而,由于這種游標功能有限,將它用于系統(tǒng)資源時是非常有效的。)
AdOpenKeyset: 鍵集游標。盡管從您的記錄集不能訪問其他用戶刪除的記錄,但除無法查看其他用戶添加的記錄外,鍵集游標與動態(tài)游標相似。仍然可以看見其他用戶更改的數(shù)據(jù)。(KeySet游標允許你看見自它創(chuàng)建起其他用戶所做的修改,然而你卻不能看到其他用戶增加或刪除的記錄。)
AdOpenDynamic :動態(tài)游標。可以看見其他用戶所作的添加、更改和刪除。允許在記錄集中進行所有類型的移動,但不包括提供者不支持的書簽操作。(此類型的游標功能強大同時也是耗費系統(tǒng)資源最多的游標。Dynamic游標可以看到他們保存記錄集合的所有變化。使用Dynamic游標的用戶可以看到其他用戶所做的編輯、增加、刪除。如果數(shù)據(jù)提供者允許這種類型的游標,那么它是通過每隔一段時間從數(shù)據(jù)源重取數(shù)據(jù)來支持這種可視性的。毫無疑問這會需要很多的資源。 )
AdOpenStatic:靜態(tài)游標。可以用來查找數(shù)據(jù)或生成報告的記錄集合的靜態(tài)副本。另外,對其他用戶所作的添加、更改或刪除不可見。(Static類游標只是數(shù)據(jù)的一幅快照。這就是說,它無法看到自它創(chuàng)建以后其他用戶對RecordSet所做的修改。采用這類游標你可以向前和向后航行。由于其功能簡單,資源的需求比Dynamic要小! )
需要注意的是:一旦打開RecordSet,你就無法改變CursorType屬性。但是,如果你首先關(guān)閉RecordSet,改變CursorType屬性,然后重新打開RecordSet,那么你仍可以有效地改變游標的類型!
2、LockType 屬性
在任何同時可被多用戶修改的數(shù)據(jù)庫應用程序中,你必須處理可能發(fā)生的多個用戶同時對同一條記錄進行操作時的情況。當這種情況出現(xiàn)時,數(shù)據(jù)的完整性就會受到威脅,這是因為一個用戶可能會在不自覺地在保存自己所做的修改時覆蓋他人的修改。到時候你會覺得自己好象是沒有做事。為了處理這種情況。ADO允許你在對RecordSet對象進行更新時決定并發(fā)事件控制的類型,當一個用戶編輯時,如何由他對記錄進行鎖定。這就是由LockType屬性所決定的。這個屬性有四個值:
adLockReadonly:默認值,只讀。無法更改數(shù)據(jù)。(這是RecodSet的默認值,如果你把鎖定的方式設(shè)為該值,那么你將不能更新 Recordset。)
adLockPessimistic:保守式記錄鎖定(逐條)。提供者執(zhí)行必要的操作確保成功編輯記錄,通常采用編輯時立即鎖定數(shù)據(jù)源的記錄的方式。(如果設(shè)置為此類鎖定,記錄被鎖定,且只有在編輯開始到將記錄更新的提交給數(shù)據(jù)提供者這段時間內(nèi)進行編輯的用戶才可以訪問! )
adLockOptimistic:開放式記錄鎖定(逐條)。提供者使用開放式鎖定,只在調(diào)用 Update 方法時鎖定記錄。(只有在將數(shù)據(jù)提交給數(shù)據(jù)提供者的那一瞬間才把記錄鎖定。)
adlockBatchOptimistic:開放式批更新。用于與立即更新模式相反的批更新模式。(設(shè)定為這種類型的鎖定制式將被稱為批量更新模式的RecordSet。 可以加快更新RecordSet修改數(shù)據(jù)的速度,但因為同時更新多個記錄,它也會惡化與并發(fā)訪問相關(guān)的問題! )
3、AbsolutePage 屬性
AbsolutePage屬性設(shè)定當前記錄的位置是位于哪一頁的頁數(shù)編號;使用PageSize屬性將Recordset對象分割為邏輯上的頁數(shù),每一頁的記錄數(shù)為PageSize(除了最后一頁可能會有少于PageSize的記錄數(shù))。這里必須注意并不是所有的數(shù)據(jù)提供者都支持此項屬性,因此使用時要小心。
與AbsolutePosition屬性相同,AbsolutePage屬性是以1為起始的,若當前記錄為Recordset的第一行記錄,AbsolutePage為1。可以設(shè)定AbsolutePage屬性,以移動到一個指定頁的第一行記錄位置。
4、AbsolutePosition屬性
若您需要確定目前指標在RecordSet中的位置,您可以用AbsolutePosition屬性。
AbsolutePosition屬性的數(shù)值為目前指標相對於第一筆的位置,由1算起,即第一筆的AbsolutePosition為1。
注意,在存取RecordSet時,無法保證RecordSet每次都以同樣的順序出現(xiàn)。
若要啟用AbsolutePosition,必須先設(shè)定為使用用戶端cursor(指針):rs.CursorLocation=3
5、PageCount屬性
使用PageCount屬性,決定Recordset對象包括多少“頁”的數(shù)據(jù)。這里的“頁”是數(shù)據(jù)記錄的集合,大小等于PageSize屬性的設(shè)定,即使最后一頁的記錄數(shù)比PageSize的值少,最后一頁也算是PageCount的一頁。必須注意也并不是所有的數(shù)據(jù)提供者都支持此項屬性。
6、PageSize屬性
PageSize屬性是決定ADO存取數(shù)據(jù)庫時如何分頁顯示的關(guān)鍵,使用它就可以決定多少記錄組成一個邏輯上的“一頁”。設(shè)定并建立一個頁的大小,從而允許使用AbsolutePage屬性移到其它邏輯頁的第一條記錄。PageSize屬性能隨時被設(shè)定。
7、RecordCount屬性
這也是一個非常常用和重要的屬性,我們常用RecordCount屬性來找出一個Recordset對象包括多少條記錄。使用 RecordCount 屬性可確定Recordset 對象中記錄的數(shù)目。ADO 無法確定記錄數(shù)時,或者如果提供者或游標類型不支持 RecordCount,則該屬性返回
主站蜘蛛池模板:
都兰县|
通许县|
同江市|
汽车|
清镇市|
华容县|
尼勒克县|
南木林县|
丰镇市|
虞城县|
大悟县|
寿光市|
衡阳县|
庐江县|
梧州市|
徐闻县|
孝感市|
繁峙县|
泊头市|
西林县|
彰武县|
城步|
栾川县|
清镇市|
白朗县|
开远市|
石楼县|
灌南县|
河南省|
南康市|
新昌县|
太仓市|
陵水|
卓尼县|
龙泉市|
油尖旺区|
宜良县|
三原县|
福海县|
积石山|
宝坻区|