PDA

View Full Version : Chi sà usare gli eventi recordset ?


CIUFFO
03-01-2003, 19:06
Come si fà ad usare i metodi: WillChangeRecordset e RecordsetChangeComplete (RecordsetEvent)
:confused:

tas
04-01-2003, 13:56
Il seguente codice lo puoi usare solo in un form o in una classe, nel blocco delle dichiarazioni generali:

Private WithEvents rs As ADODB.Recordset

La parola chiave WithEvents ti permette di accedere agli eventi dell'oggetto dichiarato, troverai quindi gli eventi:

Private Sub rs_WillChangeRecordset(ByVal adReason As ADODB.EventReasonEnum, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
...
Private Sub rs_RecordsetChangeComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
...

e tanti altri eventi!
:)

CIUFFO
06-01-2003, 00:55
Come dichiaro "rs"?
Puoi illustrarmi meglio il tuo codice?

tas
06-01-2003, 09:05
Guarda l'allegato

CIUFFO
06-01-2003, 14:25
Quale allegato?Questa è un'immagine della prima riga di codice che mi hai già scritto!

tas
06-01-2003, 19:26
Originally posted by "CIUFFO"

Come dichiaro "rs"?
Puoi illustrarmi meglio il tuo codice?
Non so cosa ti possa dire oltre a quello che ti ho già scritto, se vuoi usare gli eventi del recordset devi dichiarare una variabile di tipo Recordset utilizzando la parola chiave WithEvents. Appena scrivi questa dichiarazione, nella prima casella a sinistra dell'editor di codice appare un nuovo oggetto, rs, che ha associati una serie di eventi (vedi immagine).

Se invece il tuo problema è utilizzare quegli eventi che hai citato, allora è un altro discorso... fammi sapere!

CIUFFO
06-01-2003, 22:47
Mi sà che non và bene per il mio db.
Il mio db non è un progetto OLEDB, ma un semplice db locale.
Volevo solo trovare il modo di poter usare un evento recordset per operare su una tabella da VB senza necessariamente utilizzare gli eventi di una maschera.
Grazie

tas
07-01-2003, 10:03
Se usi gli eventi WillChangeRecordset e compagnia bella vuol dire che accedi al database con la tecnologia ADO (ActiveX Data Objects).
Se preferisci si poteva scrivere:
Private WithEvents rs As Recordset
Il prefisso ADODB (e non OLEDB...) che avevo utilizzato negli esempi precedenti è facoltativo, serve solo per riferirsi con più precisione a quella particolare libreria.
Se vuoi ti mando un progettino di esempio, ciao

CIUFFO
07-01-2003, 19:29
Ho provato ad inserire la tua riga nelle dichiarazioni di un form, mi dice: L'oggetto non può essere l'origine di eventi di automazione.
Mandami un esempio per favore.
grazie.

tas
08-01-2003, 18:43
Eccoti un esempio in VB6, ciao