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

Le informazioni contenute in questo argomento sono valide per le classi ODBC MFC.

In questo argomento viene illustrato come usare un oggetto recordset per rieseguire una query (ovvero aggiornare) dal database e quando è possibile eseguire questa operazione con la funzione membro Requery .

I motivi principali per la rieseguizione di una query su un recordset sono i seguenti:

  • Aggiornare il recordset rispetto ai record aggiunti dall'utente o da altri utenti e record eliminati da altri utenti (quelli eliminati sono già riportati nel recordset).

  • Aggiornare il recordset in base alla modifica dei valori dei parametri.

Aggiornamento dell'oggetto Recordset

Spesso è necessario rieseguire una query dell'oggetto recordset per aggiornarlo. In un ambiente di database multiutente, altri utenti possono apportare modifiche ai dati durante la durata del recordset. Per altre informazioni sui casi in cui il recordset riflette le modifiche apportate da altri utenti e quando i recordset di altri utenti riflettono le modifiche, vedere Recordset: How Recordsets Update Records (ODBC) and Dynaset.

Nuova query basata su nuovi parametri

Un altro elemento frequente, e altrettanto importante, consiste nel selezionare un nuovo set di record in base alla modifica dei valori dei parametri.

Suggerimento

La velocità delle query è probabilmente significativamente più veloce se si chiama Requery con la modifica dei valori dei parametri rispetto a se si chiama Open di nuovo.

Rieseguire una query su Dynasets e snapshot

Poiché i dynaset sono destinati a presentare un set di record con dati aggiornati dinamici, è consigliabile rieseguire una query su dynaset spesso se si desidera riflettere le aggiunte di altri utenti. Gli snapshot, d'altra parte, sono utili perché è possibile affidarsi in modo sicuro al relativo contenuto statico durante la preparazione dei report, il calcolo dei totali e così via. Tuttavia, a volte potrebbe essere necessario rieseguire una query su uno snapshot. In un ambiente multiutente, i dati snapshot potrebbero perdere la sincronizzazione con l'origine dati mentre altri utenti modificano il database.

Per rieseguire una query su un oggetto recordset

  1. 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 record: riempimento di una casella di riepilogo da un secondo recordset.

Suggerimento

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

Se la Requery chiamata non riesce, è possibile ritentare la chiamata. In caso contrario, l'applicazione deve terminare normalmente. Una chiamata a Requery o Open potrebbe non riuscire per diversi motivi. Forse si verifica un errore di rete; oppure, durante la chiamata, dopo il rilascio dei dati esistenti, ma prima che i nuovi dati vengano ottenuti, un altro utente potrebbe ottenere l'accesso esclusivo; o la tabella in cui dipende il recordset potrebbe essere eliminata.

Vedi anche

Recordset (ODBC)
Recordset: associazione dinamica di colonne di dati (ODBC)
Recordset: creazione e chiusura di recordset (ODBC)