Condividi tramite


Aggiornamento e salvataggio permanente dei dati

I capitoli precedenti hanno illustrato come usare ADO per ottenere i dati in un'origine dati, come spostarsi nei 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 in modo permanente le modifiche Recordset in un file usando il metodo Save oppure inviare le modifiche all'origine dati per l'archiviazione usando il 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 immediatamente apportate al recordset ; invece, vengono effettuate su un buffer di copia interno . Se si decide di non voler apportare 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 su una riga (ovvero, modalità immediata), oppure tutte le modifiche apportate a un set di righe vengono raccolte fino a quando non si dichiara completato il lavoro per il set (ovvero, modalità batch). La proprietà LockType determina quando vengono apportate modifiche sulla origine dati sottostante. adLockOptimistic o adLockPessimistic specifica la modalità immediata, mentre adLockBatchOptimistic specifica la modalità batch. La proprietà CursorLocation può influire sulle impostazioni 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 di Update o spostamento della posizione di riga corrente salva le modifiche nel buffer di copia, ma solo il metodo UpdateBatch propaga le modifiche all'origine dati.

Questa sezione contiene gli argomenti seguenti.