Tutorials References Menu

ADO Open Method


❮ Complete Recordset Object Reference

The Open method opens a database element that gives you access to records in a table, the results of a query, or to a saved Recordset.

Tip: Always close the Recordset object after using it, to free system resources. Set the Recordset object to Nothing to completely eliminate it from memory.

Syntax

objRecordset.Open source,actconn,cursortyp,locktyp,opt

Parameter Description
source Optional. Specifies a data source.  The source parameter may be one of the following:
  • A URL
  • A relative/full file path name
  • A Command object
  • An SQL statement
  • A stored procedure
  • A table name
actconn Optional. A connection string or a Connection object
cursortyp Optional. A CursorTypeEnum value that specifies the type of cursor to use when opening a Recordset object. Default is adOpenForwardOnly
locktyp Optional. A LockTypeEnum value that specifies the type of locking on a Recordset object. Default is adLockReadOnly
opt Optional. Specifies how to evaluate the source parameter if it is not a Command object. Can be one or more CommandTypeEnum or ExecuteOptionEnum values.

Example

Open an ADO Table Recordset:

<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "Customers", conn
%>

Open an ADO SQL Recordset:

<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "Select * from Customers", conn
%>

CursorTypeEnum Values

Constant Value Description
adOpenUnspecified -1 Unspecified type of cursor
adOpenForwardOnly 0 Default. A forward-only cursor. This improves performance when you need to make only one pass through a Recordset
adOpenKeyset 1 A keyset cursor. Like a dynamic cursor, except that you can't see records that other users add, although records that other users delete are inaccessible from your Recordset. Data changes by other users are still visible.
adOpenDynamic 2 A dynamic cursor. Additions, changes, and deletions by other users are visible, and all types of movement through the Recordset are allowed
adOpenStatic 3 A static cursor. A static copy of a set of records that you can use to find data or generate reports. Additions, changes, or deletions by other users are not visible.

LockTypeEnum Values

Constant Value Description
adLockUnspecified -1 Unspecified type of lock. Clones inherits lock type from the original Recordset.
adLockReadOnly 1 Default. Read-only records
adLockPessimistic 2 Pessimistic locking, record by record. The provider lock records immediately after editing
adLockOptimistic 3 Optimistic locking, record by record. The provider lock records only when calling update
adLockBatchOptimistic 4 Optimistic batch updates. Required for batch update mode

CommandTypeEnum Values

Constant Value Description
adCmdUnspecified -1 Unspecified type of command
adCmdText 1 Evaluates CommandText as a textual definition of a command or stored procedure call
adCmdTable 2 Evaluates CommandText as a table name whose columns are returned by an SQL query
adCmdStoredProc 4 Evaluates CommandText as a stored procedure name
adCmdUnknown 8 Default. Unknown type of command
adCmdFile 256 Evaluates CommandText as the file name of a persistently stored Recordset. Used with Recordset.Open or Requery only.
adCmdTableDirect 512 Evaluates CommandText as a table name whose columns are all returned. Used with Recordset.Open or Requery only. To use the Seek method, the Recordset must be opened with adCmdTableDirect. Cannot be combined with the ExecuteOptionEnum value adAsyncExecute.

ExecuteOptionEnum Values

Constant Value Description
adOptionUnspecified -1 Unspecified command
adAsyncExecute 16 The command should execute asynchronously. Cannot be combined with the CommandTypeEnum value adCmdTableDirect
adAsyncFetch 32 The remaining rows after the initial quantity specified in the CacheSize property should be retrieved asynchronously
adAsyncFetchNonBlocking 64 The main thread never blocks while retrieving. If the requested row has not been retrieved, the current row automatically moves to the end of the file. If you open a Recordset from a Stream containing a persistently stored Recordset, adAsyncFetchNonBlocking will not have an effect; the operation will be synchronous and blocking. adAsynchFetchNonBlocking has no effect when the adCmdTableDirect option is used to open the Recordset
adExecuteNoRecords 128 The command text is a command or stored procedure that does not return rows. If any rows are retrieved, they are discarded and not returned. adExecuteNoRecords can only be passed as an optional parameter to the Command or Connection Execute method
adExecuteStream 256 The results of a command execution should be returned as a stream. adExecuteStream can only be passed as an optional parameter to the Command Execute method
adExecuteRecord 512 The CommandText is a command or stored procedure that returns a single row which should be returned as a Record object

❮ Complete Recordset Object Reference