Recordset: blocco dei record (ODBC)

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

In questo argomento:

Quando si usa un recordset per aggiornare un record nell'origine dati, l'applicazione può bloccare il record in modo che nessun altro utente possa aggiornare il record contemporaneamente. Lo stato di un record aggiornato da due utenti contemporaneamente non è definito a meno che il sistema non possa garantire che due utenti non possano aggiornare un record contemporaneamente.

Nota

Questo argomento si applica agli oggetti derivati da CRecordset in cui non è stato implementato il recupero di massa di righe. Se è stato implementato il recupero di righe bulk, alcune delle informazioni non si applicano. Ad esempio, non è possibile chiamare le Edit funzioni membro e Update . Per altre informazioni sul recupero delle righe bulk, vedere Recordset: recupero di record in blocco (ODBC).

Modalità di blocco dei record

Le classi di database offrono due modalità di blocco dei record:

  • Blocco ottimistico (impostazione predefinita)

  • Blocco pessimistico

L'aggiornamento di un record avviene in tre passaggi:

  1. Per iniziare l'operazione, chiamare la funzione membro Edit .

  2. Modificare i campi appropriati del record corrente.

  3. Terminare l'operazione e in genere eseguire il commit dell'aggiornamento chiamando la funzione membro Update .

Il blocco ottimistico blocca il record nell'origine dati solo durante la Update chiamata. Se si usa il blocco ottimistico in un ambiente multiutente, l'applicazione deve gestire una Update condizione di errore. Il blocco pessimistico blocca il record non appena si chiama Edit e non lo rilascia finché non si chiama Update (gli errori vengono indicati tramite il CDBException meccanismo, non da un valore FALSE restituito da Update). Il blocco pessimistico comporta una potenziale riduzione delle prestazioni per altri utenti, perché l'accesso simultaneo allo stesso record potrebbe dover attendere fino al completamento del processo dell'applicazione Update .

Blocco dei record nel recordset

Se si desidera modificare la modalità di blocco di un oggetto recordset dall'impostazione predefinita, è necessario modificare la modalità prima di chiamare Edit.

Per modificare la modalità di blocco corrente per il recordset

  1. Chiamare la funzione membro SetLockingMode , specificando CRecordset::pessimistic o CRecordset::optimistic.

La nuova modalità di blocco rimane attiva fino a quando non viene modificata di nuovo o l'oggetto recordset viene chiuso.

Nota

Attualmente alcuni driver ODBC supportano il blocco pessimistico.

Vedi anche

Recordset (ODBC)
Recordset: esecuzione di un join (ODBC)
Recordset: aggiunta, aggiornamento ed eliminazione di record (ODBC)