A Cursor, in ADO, is the underlying Object that makes it possible to move around within the set of rows returned by a Recordset. The Cursor manages movement, updatability, and currency of the rows you've requested. DAO has 3 simple Cursor Types: Table, Dynaset, and Snapshot. ADO's Cursor options are a bit more flexible and are more complex. ADO contains 4 types of ADO Recordset Cursors. The one you should select depends on the source of the data being referenced, and the methods you need to use to access the data. Without any further delay, let me introduce the ADO Cursors along with their benefits and drawbacks:
- Dynamic (adOpenDynamic) - A set of Records in a Table or other data source in a Database. This Cursor shows all Record changes by other users including new. It allows Bookmarks only if the provider supports them. It is not supported by the Jet OLE DB provider in this manner. Jet uses this Cursor Type to provide best performance for Cursors based on SQL strings.
- Keyset (adOpenKeyset) - It is a set of pointers (bookmarks) referring to data in Tables or Queries in a Database. This Cursor shows changes by other users and always supports Bookmarks. It does not show new Records by other users, and also prevent access to Records deleted by other users.
- Static (adOpenStatic) - It is a copy of a set of records as it exists at the time the Recordset is created. This Cursor always supports Bookmarks. It is the only type of Recordset allowed by a Client-side Cursor. It does not reflect changes to data made in a multi-user environment.
- Forward-Only (adOpenForwardOnly) [DEFAULT] - It is a copy of a set of Records as it exists at the time the Recordset is created. This Cursor is faster than a Static Cursor. A Forward-only Cursor only allows forward scrolling through Recordsets.