Aggiornamento e persistenza dei dati
I capitoli precedenti hanno illustrato come usare ADO per accedere ai dati in un'origine dati, come spostarsi all'interno dei dati e anche come modificare i dati. Naturalmente, se l'obiettivo dell'applicazione è consentire agli utenti di apportare modifiche ai dati, sarà necessario comprendere come salvare tali modifiche. È possibile salvare le modifiche dell'oggetto Recordset in modo permanente in un file usando il metodo Save oppure inviare le modifiche all'origine dati per l'archiviazione usando i metodi Update o UpdateBatch.
Nei capitoli precedenti sono stati modificati i dati in diverse righe dell'oggetto Recordset. ADO supporta due nozioni di base relative all'aggiunta, all'eliminazione e alla modifica di righe di dati.
La prima nozione è che le modifiche non vengono apportate immediatamente all'oggetto Recordset, ma a un buffer di copia interno. Se si decide di non volere le modifiche, le modifiche nel buffer di copia vengono rimosse. Se si decide di mantenere le modifiche, le modifiche nel buffer di copia vengono applicate all'oggetto Recordset.
La seconda nozione è che le modifiche vengono propagate all'origine dati non appena si dichiara completato il lavoro in una riga (modalità immediata) o che tutte le modifiche a un set di righe vengono raccolte fino a quando non si dichiara completato il lavoro per il set (modalità batch). La proprietà LockType determina quando vengono apportate le modifiche all'origine dati sottostante. adLockOptimistic o adLockPessimistic specifica la modalità immediata, mentre adLockBatchOptimistic specifica la modalità batch. La proprietà CursorLocation può influire sulle impostazioni di LockType disponibili. Ad esempio, l'impostazione adLockPessimistic non è supportata se la proprietà CursorLocation è impostata su adUseClient.
In modalità immediata, ogni chiamata del metodo Update propaga le modifiche all'origine dati. In modalità batch ogni chiamata del metodo Update o spostamento della posizione della riga corrente salva le modifiche nel buffer di copia, ma solo il metodo UpdateBatch propaga le modifiche all'origine dati.
Questa sezione descrive gli argomenti seguenti: