Snapshot

Uno snapshot è un recordset che riflette una visualizzazione statica dei dati esistenti al momento della creazione dello snapshot. Quando si apre lo snapshot e si passa a tutti i record, il set di record che contiene e i relativi valori non cambiano finché non si ricompila lo snapshot chiamando Requery.

Nota

Le informazioni contenute in questo argomento sono valide per le classi ODBC MFC. Se si usano le classi DAO MFC anziché le classi ODBC MFC, vedere CDaoRecordset::Open per una descrizione dei recordset di tipo snapshot.

È possibile creare snapshot aggiornabili o di sola lettura con le classi di database. A differenza di un dynaset, uno snapshot aggiornabile non riflette le modifiche apportate ai valori dei record eseguiti da altri utenti, ma riflette gli aggiornamenti e le eliminazioni eseguite dal programma. I record aggiunti a uno snapshot non diventano visibili allo snapshot finché non si chiama Requery.

Suggerimento

Uno snapshot è un cursore statico ODBC. I cursori statici non ottengono effettivamente una riga di dati finché non si scorre fino a quel record. Per assicurarsi che tutti i record vengano recuperati immediatamente, è possibile scorrere fino alla fine del recordset e quindi scorrere fino al primo record che si desidera visualizzare. Si noti, tuttavia, che lo scorrimento alla fine comporta un sovraccarico aggiuntivo e può ridurre le prestazioni.

Gli snapshot sono più importanti quando è necessario che i dati rimangano fissi durante le operazioni, come quando si genera un report o si eseguono calcoli. Anche in questo caso, l'origine dati può divergere notevolmente dallo snapshot, quindi potrebbe essere necessario ricompilarla di tanto in tanto.

Il supporto degli snapshot è basato sulla libreria di cursori ODBC, che fornisce cursori statici e aggiornamenti posizionati (necessari per l'aggiornamento) per qualsiasi driver di livello 1. La DLL della libreria di cursori deve essere caricata in memoria per questo supporto. Quando si costruisce un CDatabase oggetto e si chiama la relativa OpenEx funzione membro, è necessario specificare l'opzione CDatabase::useCursorLib del parametro dwOptions . Se si chiama la Open funzione membro, la libreria di cursori viene caricata per impostazione predefinita. Se si usano dynaset anziché snapshot, non si vuole che la libreria di cursori venga caricata.

Gli snapshot sono disponibili solo se la libreria di cursori ODBC è stata caricata quando l'oggetto CDatabase è stato costruito o il driver ODBC in uso supporta i cursori statici.

Nota

Per alcuni driver ODBC, gli snapshot (cursori statici) potrebbero non essere aggiornabili. Controllare la documentazione del driver per i tipi di cursore supportati e i tipi di concorrenza supportati. Per garantire snapshot aggiornabili, assicurarsi di caricare la libreria di cursori in memoria quando si crea un CDatabase oggetto. Per altre informazioni, vedere ODBC: Libreria di cursori ODBC.

Nota

Se si vogliono usare sia snapshot che dynaset, è necessario basarli su due oggetti diversi CDatabase (due connessioni diverse).

Per altre informazioni sugli snapshot delle proprietà condivisi con tutti i recordset, vedere Recordset (ODBC).For more information about the properties snapshots share with all recordsset, see Recordset (ODBC). Per altre informazioni su ODBC e snapshot, inclusa la libreria di cursori ODBC, vedere ODBC.

Vedi anche

Open Database Connectivity (ODBC)