Recordset: aggiornamento dei record (ODBC)
Le informazioni contenute in questo argomento sono valide per le classi ODBC MFC.
Oltre alla possibilità di selezionare record da un'origine dati, i recordset possono (facoltativamente) aggiornare o eliminare i record selezionati o aggiungere nuovi record. Tre fattori determinano l'aggiornabilità di un recordset: se l'origine dati connessa è aggiornabile, le opzioni specificate quando si crea un oggetto recordset e sql creato.
Nota
Il codice SQL su cui si basa l'oggetto CRecordset
può influire sull'aggiornabilità del recordset. Ad esempio, se SQL contiene un join o una clausola GROUP BY , MFC imposta l'aggiornabilità su FALSE.
Nota
Questo argomento si applica agli oggetti derivati da CRecordset
in cui non è stato implementato il recupero di massa di righe. Se si usa il recupero di righe bulk, vedere Recordset: recupero di record in blocco (ODBC).
In questo argomento:
Il ruolo nell'aggiornamento del recordset e le operazioni del framework.
Recordset come buffer di modifica e differenze tra dynaset e snapshot.
Recordset: come AddNew, Edit e Delete Work (ODBC) descrive le azioni di queste funzioni dal punto di vista del recordset.
Recordset: altre informazioni sugli aggiornamenti (ODBC) completano la storia di aggiornamento del recordset spiegando in che modo le transazioni influiscono sugli aggiornamenti, sulla chiusura di un recordset o lo scorrimento sugli aggiornamenti in corso e sul modo in cui gli aggiornamenti interagiscono con gli aggiornamenti di altri utenti.
Ruolo nell'aggiornamento del recordset
La tabella seguente illustra il ruolo dell'utente nell'uso di recordset per aggiungere, modificare o eliminare record, insieme a ciò che il framework esegue.
Aggiornamento dell'oggetto Recordset: utente e framework
Te | Framework |
---|---|
Determinare se l'origine dati è aggiornabile (o accodabile). | Fornisce funzioni membro CDatabase per testare l'aggiornabilità o l'accodamento dell'origine dati. |
Aprire un recordset aggiornabile (di qualsiasi tipo). | |
Determinare se il recordset è aggiornabile chiamando CRecordset funzioni di aggiornamento come CanUpdate o CanAppend . |
|
Chiamare le funzioni membro del recordset per aggiungere, modificare ed eliminare record. | Gestisce i meccanismi di scambio di dati tra l'oggetto recordset e l'origine dati. |
Facoltativamente, usare le transazioni per controllare il processo di aggiornamento. | Fornisce funzioni CDatabase membro per supportare le transazioni. |
Per altre informazioni sulle transazioni, vedere Transaction (ODBC).For more information about transactions, see Transaction (ODBC).
Il buffer di modifica
Acquisiti collettivamente, i membri dati di campo di un recordset fungono da buffer di modifica che contiene un record, ovvero il record corrente. Le operazioni di aggiornamento usano questo buffer per operare sul record corrente.
Quando si aggiunge un record, il buffer di modifica viene usato per compilare un nuovo record. Al termine dell'aggiunta del record, il record precedentemente corrente diventa di nuovo corrente.
Quando si aggiorna (modifica) un record, il buffer di modifica viene usato per impostare i membri dei dati del campo del recordset su nuovi valori. Al termine dell'aggiornamento, il record aggiornato è ancora corrente.
Quando si chiama AddNew o Edit, il record corrente viene archiviato in modo che possa essere ripristinato in un secondo momento in base alle esigenze. Quando si chiama Delete, il record corrente non viene archiviato ma contrassegnato come eliminato ed è necessario scorrere fino a un altro record.
Nota
Il buffer di modifica non svolge alcun ruolo nell'eliminazione dei record. Quando si elimina il record corrente, il record viene contrassegnato come eliminato e il recordset è "non in un record" finché non si scorre un record diverso.
Dynaset e snapshot
Dynasets aggiorna il contenuto di un record mentre si scorre il record. Gli snapshot sono rappresentazioni statiche dei record, pertanto il contenuto di un record non viene aggiornato a meno che non si chiami Requery. Per usare tutte le funzionalità di dynaset, è necessario usare un driver ODBC conforme al livello corretto di supporto dell'API ODBC. Per altre informazioni, vedere ODBC e Dynaset.
Vedi anche
Recordset (ODBC)
Recordset: funzionamento dei metodi AddNew, Edit e Delete (ODBC)