Recordset對象方法詳解
Recordset對象方法
Open方法
recordset.Open Source,ActiveConnection,CursorType,LockType,Options
Source
Recordset對象可以通過Source屬性來連接Command對象。Source參數可以是一個Command對象名稱、一段SQL命令、一個指定的數據表名稱或是一個Stored Procedure。假如省略這個參數,系統則采用Recordset對象的Source屬性。
ActiveConnection
Recordset對象可以通過ActiveConnection屬性來連接Connection對象。這里的ActiveConnection可以是一個Connection對象或是一串包含數據庫連接信息(ConnectionString)的字符串參數。
CursorType
Recordset對象Open方法的CursorType參數表示將以什么樣的游標類型啟動數據,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
Open方法
recordset.Open Source,ActiveConnection,CursorType,LockType,Options
Source
Recordset對象可以通過Source屬性來連接Command對象。Source參數可以是一個Command對象名稱、一段SQL命令、一個指定的數據表名稱或是一個Stored Procedure。假如省略這個參數,系統則采用Recordset對象的Source屬性。
ActiveConnection
Recordset對象可以通過ActiveConnection屬性來連接Connection對象。這里的ActiveConnection可以是一個Connection對象或是一串包含數據庫連接信息(ConnectionString)的字符串參數。
CursorType
Recordset對象Open方法的CursorType參數表示將以什么樣的游標類型啟動數據,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
| 常數 | 常數值 | 說明 |
| adOpenForwardOnly | 0 | 缺省值,啟動一個只能向前移動的游標(Forward Only) |
| adOpenKeyset | 1 | 啟動一個Keyset類型的游標 |
| adOpenDynamic | 2 | 啟動一個Dynamic類型的游標 |
| adOpenStatic | 3 | 啟動一個Static類型的游標 |
以上幾個游標類型將直接影響到Recordset對象所有的屬性和方法,以下列表說明他們之間的區別。
| Recordset屬性 | adOpenForwardOnly | adOpenKeyset | adOpenDynamic | adOpenStatic |
| AbsolutePage | 不支持 | 不支持 | 可讀寫 | 可讀寫 |
| AbsolutePosition | 不支持 | 不支持 | 可讀寫 | 可讀寫 |
| ActiveConnection | 可讀寫 | 可讀寫 | 可讀寫 | 可讀寫 |
| BOF | 只讀 | 只讀 | 只讀 | 只讀 |
| Bookmark | 不支持 | 不支持 | 可讀寫 | 可讀寫 |
| CacheSize | 可讀寫 | 可讀寫 | 可讀寫 | 可讀寫 |
| CursorLocation | 可讀寫 | 可讀寫 | 可讀寫 | 可讀寫 |
| CursorType | 可讀寫 | 可讀寫 | 可讀寫 | 可讀寫 |
| EditMode | 只讀 | 只讀 | 只讀 | 只讀 |
| EOF | 只讀 | 只讀 | 只讀 | 只讀 |
| Filter | 可讀寫 | 可讀寫 | 可讀寫 | 可讀寫 |
| LockType | 可讀寫 | 可讀寫 | 可讀寫 | 可讀寫 |
| MarshalOptions | 可讀寫 | 可讀寫 | 可讀寫 | 可讀寫 |
| MaxRecords | 可讀寫 | 可讀寫 | 可讀寫 | 可讀寫 |
| PageCount | 不支持 | 不支持 | 只讀 | 只讀 |
| PageSize | 可讀寫 | 可讀寫 | 可讀寫 | 可讀寫 |
| RecordCount | 不支持 | 不支持 | 只讀 | 只讀 |
| Source | 可讀寫 | 可讀寫 | 可讀寫 | 可讀寫 |
| State | 只讀 | 只讀 | 只讀 | 只讀 |
| Status | 只讀 | 只讀 | 只讀 | 只讀 |
| AddNew | 支持 | 支持 | 支持 | 支持 |
| CancelBatch | 支持 | 支持 | 支持 | 支持 |
| CancelUpdate | 支持 | 支持 | 支持 | 支持 |
| Clone | 不支持 | 不支持 | ||
| Close | 支持 | 支持 | 支持 | 支持 |
| Delete | 支持 | 支持 | 支持 | 支持 |
| GetRows | 支持 | 支持 | 支持 | 支持 |
| Move | 不支持 | 支持 | 支持 | 支持 |
| MoveFirst | 支持 | 支持 | 支持 | 支持 |
| MoveLast | 不支持 | 支持 | 支持 | 支持 |
| MoveNext | 支持 | 支持 | 支持 | 支持 |
| MovePrevious | 不支持 | 支持 | 支持 | 支持 |
| NextRecordset | 支持 | 支持 | 支持 | 支持 |
| Open | 支持 | 支持 | 支持 | 支持 |
| Requery | 支持 | 支持 | 支持 | 支持 |
| Resync | 不支持 | 不支持 | 支持 | 支持 |
| Supports | 支持 | 支持 | 支持 | 支持 |
| Update | 支持 | 支持 | 支持 | 支持 |
| UpdateBatch | 支持 | 支持 | 支持 | 支持 |
其中NextRecordset方法并不適用于Microsoft Access數據庫。
LockType
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才能對數據進行增、刪、改的操作 |
Options
Recordset對象Open方法的Options參數表示對數據庫請求的類型,Options參數包含adCmdText、adCmdTable、adCmdStoredProc及adCmdUnknown等,分述如下:
| 常數 | 常數值 | 說明 |
| adCmdUnknown | -1 | 缺省值,表示指定的CommandText參數類型無法確定 |
| adCmdText | 1 | 表示指定的CommandText參數是一般的命令類型 |
| adCmdTable | 2 | 表示指定的CommandText參數是一個存在的表的名稱 |
| adCmdStoredProc | 3 | 表示指定的CommandText參數是Stored Procedure的名稱 |