Condividi tramite


Parametri evento

Ogni gestore eventi ha un parametro di stato che controlla il gestore eventi. Per gli eventi Complete, questo parametro viene usato anche per indicare l'esito positivo o negativo dell'operazione che ha generato l'evento. La maggior parte degli eventi Complete include anche un parametro di errore per fornire informazioni su qualsiasi errore che potrebbe essersi verificato e uno o più parametri oggetto che fanno riferimento agli oggetti ADO usati per eseguire l'operazione. Ad esempio, l'evento ExecuteComplete include i parametri degli oggetti Command, Recordsete Connection associati all'evento. Nell'esempio di Visual Basic seguente è possibile visualizzare gli oggetti pCommand, pRecordset e pConnection che rappresentano gli oggetti Command, Recordsete Connection utilizzati dal metodo 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)  

Tranne l'oggetto Errore , gli stessi parametri vengono passati agli eventi Will. In questo modo è possibile esaminare ognuno degli oggetti che verranno usati nell'operazione in sospeso e determinare se l'operazione deve essere consentita per il completamento.

Alcuni gestori eventi hanno un parametro Reason, che fornisce informazioni aggiuntive sul motivo per cui si è verificato l'evento. Ad esempio, gli eventi WillMove e MoveComplete possono verificarsi a causa dell'invocazione di uno dei metodi di navigazione (MoveNext, MovePreviouse così via) o come risultato di una nuova interrogazione.

Parametro Status

Quando viene chiamata la routine del gestore eventi, il parametro Status viene impostato su uno dei valori seguenti.

Valore Descrizione
statoAnnuncioOK Inviato agli eventi Will e Complete. Questo valore indica che l'operazione che ha causato l'evento è stata completata con successo.
adStatusErrorsOccurred Passato solo agli eventi Completati. Questo valore indica che l'operazione che ha causato l'evento non è riuscita oppure un evento Will ha annullato l'operazione. Controllare il parametro errore per ulteriori dettagli.
adStatusCantDeny Passato solo agli eventi Will. Questo valore indica che l'operazione non può essere annullata dall'evento Will. Deve essere eseguita.

Se si determina nell'evento Will che l'operazione deve continuare, lasciare invariato il parametro Status. Se il parametro di stato in ingresso non è stato impostato su adStatusCantDeny, è tuttavia possibile annullare l'operazione in sospeso modificando Status in adStatusCancel. Quando si esegue questa operazione, l'evento Complete associato all'operazione ha il parametro Status impostato su adStatusErrorsOccurred. L'oggetto Error passato all'evento Complete conterrà il valore adErrOperationCancelled.

Se non vuoi più elaborare un evento, puoi impostare Status su adStatusUnwantedEvent e l'applicazione non riceverà più la notifica dell'evento. Tenere tuttavia presente che alcuni eventi possono essere generati per più motivi. In tal caso, è necessario specificare adStatusUnwantedEvent per ogni possibile motivo. Ad esempio, per interrompere la ricezione della notifica relativa agli eventi RecordChange in sospeso, è necessario impostare il parametro Status su adStatusUnwantedEvent per adRsnAddNew, adRsnDelete, adRsnUpdate, adRsnUndoUpdate, adRsnUndoAddNew, adRsnUndoDeletee adRsnFirstChange man mano che si verificano.

Valore Descrizione
adStatusUnwantedEvent Richiedere che questo gestore eventi non riceva altre notifiche.
adStatusCancel Richiedere l'annullamento dell'operazione che sta per verificarsi.

Errore Parametro

Il parametro Error è un riferimento a un oggetto Error ADO. Quando il parametro Status è impostato su adStatusErrorsOccurred, l'oggetto error contiene informazioni dettagliate sul motivo per cui l'operazione non è riuscita. Se l'evento Will associato all'evento Complete ha annullato l'operazione impostando il parametro Status su adStatusCancel, l'oggetto di errore viene sempre configurato su adErrOperationCancelled.

Parametro dell'oggetto

Ogni evento riceve uno o più oggetti che rappresentano gli oggetti coinvolti nell'operazione. Ad esempio, l'evento ExecuteComplete riceve un oggetto Command, un oggetto Recordset e un oggetto Connection.

Parametro Motivo

Il parametro Reason, adReason, fornisce informazioni aggiuntive sul motivo per cui si è verificato l'evento. Gli eventi con un parametro adReason possono essere chiamati più volte, anche per la stessa operazione, per un motivo diverso ogni volta. Ad esempio, il WillChangeRecord gestore eventi viene chiamato per le operazioni che stanno per eseguire o annullare l'inserimento, l'eliminazione o la modifica di un record. Se vuoi elaborare un evento solo quando si verifica per un determinato motivo, puoi usare il parametro adReason per filtrare le occorrenze a cui non sei interessato. Ad esempio, se si desidera elaborare gli eventi di modifica dei record solo quando si verificano perché è stato aggiunto un record, è possibile usare un valore simile al seguente.

' 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  

In questo caso, la notifica può verificarsi potenzialmente per ognuno degli altri motivi. Tuttavia, si verificherà una sola volta per ogni motivo. Dopo che la notifica si è verificata una volta per ogni motivo, si riceverà una notifica solo per l'aggiunta di un nuovo record.

Al contrario, è necessario impostare adStatus su adStatusUnwantedEvent una sola volta per richiedere che un gestore eventi senza un adReason parametro interrompa la ricezione delle notifiche degli eventi.

Vedere anche

riepilogo del gestore eventi ADO
Istanziazione di eventi ADO per lingua
Come Lavorano Insieme i Gestori di Eventi
tipi di eventi