Condividi tramite


Recordset: ripetizione di una query in un recordset (ODBC)

Aggiornamento: novembre 2007

L'argomento è relativo alle classi ODBC MFC.

In questo argomento vengono illustrati l'utilizzo di un oggetto recordset per ripetere una query, ovvero eseguire un aggiornamento di se stesso dal database, e le situazioni in cui eseguire tale operazione mediante la funzione membro Requery.

La ripetizione di una query di un recordset viene effettuata principalmente per le ragioni indicate di seguito.

  • Aggiornare il recordset in relazione ai record aggiunti personalmente e a quelli aggiunti o eliminati da altri utenti (quelli eliminati personalmente sono già riflessi nel recordset).

  • Aggiornare il recordset in base alle modifiche dei valori dei parametri.

Aggiornamento dei recordset

Accade di frequente che si desideri ripetere una query dell'oggetto recordset al fine di aggiornarlo. In un ambiente di database multiutente altri utenti possono apportare modifiche ai dati per tutta la durata del recordset. Per ulteriori informazioni sui casi in cui il recordset riflette le modifiche apportate da altri utenti e quelli in cui i recordset di altri utenti riflettono le modifiche apportate dal programmatore, vedere Recordset: aggiornamento dei record (ODBC) e Dynaset.

Ripetizione di una query in base a nuovi parametri

La funzione Requery viene di frequente utilizzata per l'esecuzione di un'operazione ugualmente importante: la selezione di un nuovo gruppo di record in base alle modifiche dei valori dei parametri.

Suggerimento:

Se si chiama Requery con diversi valori dei parametri anziché chiamare nuovamente Open, si otterrà probabilmente un incremento della velocità delle query.

Ripetizione di una query su dynaset e snapshot

Poiché i dynaset vengono utilizzati per la presentazione di un recordset con dati dinamici e aggiornati, se si desidera riflettere le aggiunte di altri utenti, sarà necessario ripetere di frequente la query dei dynaset. Gli snapshot, d'altra parte, sono utili in quanto offrono un contenuto statico affidabile per la preparazione di report, il calcolo di totali e così via. Talvolta può tuttavia essere necessario ripetere una query anche negli snapshot. In un ambiente multiutente è possibile che i dati dello snapshot perdano la sincronizzazione con l'origine dati man mano che altri utenti apportano modifiche al database.

Per ripetere una query di un oggetto recordset

  • Chiamare la funzione membro Requery dell'oggetto.

In alternativa, è possibile chiudere e riaprire il recordset originale. In entrambi i casi, il nuovo recordset rappresenta lo stato corrente dell'origine dati.

Per un esempio, vedere Visualizzazioni di record: inserimento di dati in una casella combinata di un nuovo recordset.

Suggerimento:

Per ottimizzare le prestazioni di Requery, non modificare il filtro o l'ordinamento del recordset. Prima di chiamare Requery modificare solo il valore del parametro.

Se la chiamata a Requery non viene eseguita correttamente, è possibile rieseguirla o chiudere normalmente l'applicazione in uso. È possibile che una chiamata a Requery o a Open non venga eseguita correttamente per una serie di ragioni, quali un eventuale errore di rete, l'utilizzo, durante la chiamata, dell'accesso esclusivo da parte di un altro utente dopo il rilascio dei dati esistenti ma prima del recupero dei nuovi dati oppure un'eventuale eliminazione della tabella su cui è basato il recordset in uso.

Vedere anche

Concetti

Recordset (ODBC)

Recordset: associazione dinamica di colonne di dati (ODBC)

Recordset: creazione e chiusura di recordset (ODBC)