Parámetros de evento
Cada controlador de eventos tiene un parámetro de estado que controla el controlador de eventos. Para los eventos Complete, este parámetro también se usa para indicar el éxito o error de la operación que generó el evento. La mayoría de los eventos Complete también tienen un parámetro de error para proporcionar información sobre cualquier error que pueda haber ocurrido y uno o varios parámetros de objeto que hacen referencia a los objetos de ADO usados para realizar la operación. Por ejemplo, el evento ExecuteComplete incluye parámetros de objeto para los objetos Command, Recordsety Connection asociados con el evento. En el siguiente ejemplo de Visual Basic, puede ver los objetos pCommand, pRecordset y pConnection que representan los objetos Command, Recordsety Connection que son utilizados por el método Execute.
Private Sub connEvent_ExecuteComplete(ByVal RecordsAffected As Long, _
ByVal pError As ADODB.Error, _
adStatus As ADODB.EventStatusEnum, _
ByVal pCommand As ADODB.Command, _
ByVal pRecordset As ADODB.Recordset, _
ByVal pConnection As ADODB.Connection)
Excepto por el objeto de error , los mismos parámetros se pasan a los eventos Will. Esto le permite examinar cada uno de los objetos que se usarán en la operación pendiente y determinar si se debe permitir que finalice la operación.
Algunos controladores de eventos tienen un parámetro Reason, que proporciona información adicional sobre por qué se produjo el evento. Por ejemplo, los eventos WillMove y MoveComplete pueden producirse debido a que se llama a cualquiera de los métodos de navegación (MoveNext, MovePrevious, etc.) o como resultado de una reconsulta.
Parámetro de estado
Cuando se llama a la rutina del controlador de eventos, el parámetro Status se establece en uno de los valores siguientes.
Valor | Descripción |
---|---|
adStatusOK | Se asigna a los eventos Will y Complete. Este valor significa que la operación que provocó el evento se completó correctamente. |
erroresDeEstadoAnuncioOcurridos | Se transfiere solo a eventos completos. Este valor significa que la operación que provocó el evento no se realizó correctamente o un evento Will canceló la operación. Consulte el parámetro error para obtener más detalles. |
estadoAnuncioNoSePuedeNegar | Solo se pasa a eventos de tipo "Will". Este valor significa que el evento Will no puede cancelar la operación. Debe realizarse. |
Si determina en su evento Will que la operación debe continuar, deje el parámetro Status sin cambios. Siempre que el parámetro de estado entrante no se haya establecido en adStatusCantDeny, sin embargo, puede cancelar la operación pendiente cambiando Status a adStatusCancel. Al hacer esto, el evento Complete asociado con la operación tiene su parámetro Status configurado en adStatusErrorsOccurred. El objeto de error que se pasa al evento Complete contendrá el valor "adErrOperationCancelled".
Si ya no desea procesar un evento, puede establecer Estado en adStatusUnwantedEvent y su aplicación dejará de recibir notificaciones sobre ese evento. Sin embargo, recuerde que algunos eventos se pueden generar por más de un motivo. En ese caso, debe especificar adStatusUnwantedEvent por cada motivo posible. Por ejemplo, para dejar de recibir notificaciones de eventos de RecordChange pendientes, debe establecer el parámetro Status en adStatusUnwantedEvent para adRsnAddNew, adRsnDelete, adRsnUpdate, adRsnUndoUpdate, adRsnUndoAddNew, adRsnUndoDeletey adRsnFirstChange a medida que se producen.
Valor | Descripción |
---|---|
EstadoDeAnuncioNoDeseado | Solicite que este controlador de eventos no reciba más notificaciones. |
estadoAnuncioCancelado | Solicite la cancelación de la operación que está a punto de producirse. |
Parámetro de error
El parámetro Error es una referencia a un objeto ADO Error. Cuando el parámetro Status se establece en adStatusErrorsOccurred, el objeto Error contiene detalles sobre por qué se produjo un error en la operación. Si el evento Will asociado a un evento Complete ha cancelado la operación estableciendo el parámetro Status en adStatusCancel, el objeto de error siempre se establece en adErrOperationCancelled.
Parámetro de objeto
Cada evento recibe uno o varios objetos que representan los objetos implicados en la operación. Por ejemplo, el evento ExecuteComplete recibe un objeto Command, un objeto Recordset y un objeto Connection.
Parámetro de razón
El parámetro Reason, adReason, proporciona información adicional sobre por qué ocurrió el evento. Los eventos con un parámetro adReason se pueden llamar varias veces, incluso para la misma operación, por un motivo diferente cada vez. Por ejemplo, se llama al controlador de eventos WillChangeRecord para las operaciones que están a punto de realizar o deshacer la inserción, eliminación o modificación de un registro. Si desea procesar un evento solo cuando se produce por un motivo determinado, puede usar el parámetro adReason para filtrar las apariciones que no le interesen. Por ejemplo, si desea procesar eventos de cambio de registro solo cuando se producen porque se agregó un registro, puede usar algo parecido a lo siguiente.
' BeginEventExampleVB01
Private Sub rsTest_WillChangeRecord(ByVal adReason As ADODB.EventReasonEnum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
If adReason = adRsnAddNew Then
' Process event
'...
Else
' Cancel event notification for all
' other possible adReason values.
adStatus = adStatusUnwantedEvent
End If
End Sub
' EndEventExampleVB01
En este caso, la notificación puede producirse por cada uno de los otros motivos. Sin embargo, solo se producirá una vez por cada motivo. Después de que la notificación haya ocurrido una vez por cada motivo, recibirá una notificación solo cuando se añada un nuevo registro.
Por el contrario, debe configurar adStatus en adStatusUnwantedEvent solo una vez para solicitar que un controlador de eventos sin un parámetro adReason deje de recibir notificaciones de eventos.
Consulte también
Resumen del Controlador de Eventos de ADO
Creación de Instancias de Eventos de ADO por Idioma
Cómo funcionan conjuntamente los controladores de eventos
Tipos de Eventos