ADO WillExecute and ExecuteComplete Events


❮ Complete Connection Object Reference

An event is a subroutine that can be called automatically after a specific operation has occurred.

  • The WillExecute event can be fired just before a call to objcomm.Execute, objconn.Execute, or objrs.Open.
  • The ExecuteComplete event can be fired after a call to objcomm.Execute, objconn.Execute, objrs.Open, objrs.Requery, or objrs.NextRecordset is completed.

Syntax

WillExecute src,cursortyp,locktyp,options,
status,objcomm,objrs,objconn

ExecuteComplete recaffected,objerror,status,
objcomm,objrs,objconn

Parameter Description
src A string that contains an SQL command or a stored procedure name
cursortyp Specifies the type of cursor to be used. One of the CursorTypeEnum values
locktyp Specifies the type of lock to be used. One of the LockTypeEnum values
options One or more of the CommandTypeEnum or ExecuteOptionEnum values
recaffected The number of records affected by the execution
objerror An Error object that contains the errors that occurred

Note: The EventStatusEnum value must be set to adStatusErrorsOccurred to create the Error object

status An EventStatusEnum value
objcomm For WillExecute: Set to the Command object that was executed or to Nothing

For ExecuteComplete: The Command object that was executed

objrs For WillExecute: Set to the Recordset object that resulted from the execution of the command or to Nothing

For ExecuteComplete: The Recordset object that is the result of the executed command

objconn The Connection object that is associated with the execution of the command

CursorTypeEnum Values

Specifies the type of cursor used in a Recordset object.

Constant Value Description
adOpenUnspecified -1 Does not specify the type of cursor.
adOpenForwardOnly 0 Default. Uses a forward-only cursor. Identical to a static cursor, except that you can only scroll forward through records. This improves performance when you need to make only one pass through a Recordset.
adOpenKeyset 1 Uses 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 Uses a dynamic cursor. Additions, changes, and deletions by other users are visible, and all types of movement through the Recordset are allowed, except for bookmarks, if the provider doesn't support them.
adOpenStatic 3 Uses 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 Does not specify a type of lock. For clones, the clone is created with the same lock type as the original.
adLockReadOnly 1 Indicates read-only records. You cannot alter the data.
adLockPessimistic 2 Indicates pessimistic locking, record by record. The provider does what is necessary to ensure successful editing of the records, usually by locking records at the data source immediately after editing.
adLockOptimistic 3 Indicates optimistic locking, record by record. The provider uses optimistic locking, locking records only when you call the Update method.
adLockBatchOptimistic 4 Indicates optimistic batch updates. Required for batch update mode.

CommandTypeEnum Values

Constant Value Description
adCmdUnspecified -1 Does not specify the command type argument.
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 all returned by an internally generated SQL query.
adCmdStoredProc 4 Evaluates CommandText as a stored procedure name.
adCmdUnknown 8 Indicates that the type of command in the CommandText property is not known.
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. This value cannot be combined with the ExecuteOptionEnum value adAsyncExecute.

ExecuteOptionEnum Values

Constant Value Description
adOptionUnspecified -1 Indicates that the command is unspecified.
adAsyncExecute 16 Indicates that the command should execute asynchronously. This value cannot be combined with the CommandTypeEnum value adCmdTableDirect.
adAsyncFetch 32 Indicates that the remaining rows after the initial quantity specified in the CacheSize property should be retrieved asynchronously.
adAsyncFetchNonBlocking 64 Indicates that 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 Indicates that the command text is a command or stored procedure that does not return rows (for example, a command that only inserts data). 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 Indicates that 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 Indicates that the CommandText is a command or stored procedure that returns a single row which should be returned as a Record object.

EventStatusEnum Values

Constant Value Description
adStatusOK 1 The operation that fired the event was successful
adStatusErrorsOccurred 2 The operation that fired the event failed
adStatusCantDeny 3 Cannot cancel the pending operation
adStatusCancel 4 Cancels the operation that fired the event
adStatusUnwantedEvent 5 Prevents subsequent notifications before the event method has finished executing

❮ Complete Connection Object Reference
Copyright 1999-2023 by Refsnes Data. All Rights Reserved.