Recordset: aggiornamento dei record (ODBC)
L'argomento è relativo alle classi ODBC MFC.
Oltre a selezionare record da un'origine dati, tramite i recordset è possibile aggiornare o eliminare i record selezionati o aggiungere nuovi record. La possibilità di aggiornare un recordset è determinata da tre fattori: l'aggiornabilità dell'origine dati connessa, le opzioni specificate quando si crea un oggetto recordset e la stringa SQL creata.
Nota
La stringa SQL su cui è basato l'oggetto CRecordset può influenzare la possibilità di aggiornare il recordset. Se ad esempio la stringa SQL contiene un join o una clausola GROUP BY, in MFC l'aggiornabilità del set viene impostata su FALSE.
Nota
L'argomento è relativo agli oggetti derivati da CRecordset per cui il recupero di massa di righe non è ancora stato implementato. Se si utilizza il recupero di massa di righe, vedere Recordset: recupero di massa di record (ODBC).
In questo argomento vengono fornite informazioni su:
Ruolo del programmatore nell'aggiornamento del recordset e operazioni effettuate automaticamente dal framework.
Recordset come buffer di modifica e differenze tra dynaset e snapshot.
In Recordset: funzionamento dei metodi AddNew, Edit e Delete (ODBC) sono descritte le operazioni eseguite da queste funzioni per quanto riguarda il recordset.
In Recordset: ulteriori informazioni sugli aggiornamenti (ODBC) vengono fornite informazioni aggiuntive sugli aggiornamenti dei recordset: vengono illustrati gli effetti delle transazioni sugli aggiornamenti, gli effetti della chiusura o dello scorrimento del recordset sugli aggiornamenti in corso e l'interazione tra gli aggiornamenti effettuati da un determinato utente con quelli eseguiti da altri utenti.
Ruolo del programmatore nell'aggiornamento del recordset
Nella tabella riportata di seguito viene illustrato il ruolo svolto dal programmatore nell'utilizzo dei recordset per aggiungere, modificare o eliminare record, insieme alle operazioni effettuate automaticamente dal framework.
Aggiornamento del recordset: programmatore e framework
Programmatore |
Framework |
---|---|
Determina se l'origine dati è abilitata per l'aggiornamento o per le aggiunte. |
Fornisce le funzioni membro di CDatabase per verificare se l'origine dati è abilitata per l'aggiornamento o per le aggiunte. |
Apre un recordset aggiornabile di qualsiasi tipo. |
|
Determina se il recordset è aggiornabile chiamando le funzioni di aggiornamento di CRecordset, ovvero CanUpdate o CanAppend. |
|
Chiama le funzioni membro del recordset per aggiungere, modificare ed eliminare i record. |
Gestisce il meccanismo di trasferimento di dati tra l'oggetto recordset e l'origine dati. |
Utilizza eventualmente le transazioni per controllare il processo di aggiornamento. |
Fornisce le funzioni membro CDatabase per il supporto delle transazioni. |
Per ulteriori informazioni sulle transazioni, vedere Transazione (ODBC).
Buffer di modifica
L'insieme di tutti i membri dati di campo di un recordset funge da buffer di modifica contenente un solo record, quello corrente. Le operazioni di aggiornamento vengono applicate al record corrente mediante questo buffer.
Quando si aggiunge un record, il buffer di modifica viene utilizzato per compilare il nuovo record. Una volta aggiunto il record, il record che era in precedenza corrente viene reimpostato come record corrente.
Quando si aggiorna o si modifica un record, il buffer di modifica viene utilizzato per impostare i membri dati di campo del recordset sui nuovi valori. Una volta terminato l'aggiornamento, il record aggiornato continua a essere il record corrente.
Quando si chiama AddNew o Edit, il record corrente viene memorizzato per essere ripristinato in seguito, se necessario. Quando si chiama Delete, il record corrente non viene memorizzato, ma viene contrassegnato come eliminato. È quindi necessario passare a un altro record.
Nota
Il buffer di modifica non svolge alcun ruolo nell'eliminazione dei record. Quando si elimina il record corrente, questo viene contrassegnato come eliminato e il recordset non risulta posizionato su alcun record fino a quando non si passa a un altro record.
Dynaset e snapshot
I dynaset aggiornano il contenuto di un record durante lo scorrimento. Gli snapshot sono invece rappresentazioni statiche dei record. Il contenuto di un record non viene pertanto aggiornato fino a quando non si chiama Requery. Per utilizzare tutte le funzionalità dei dynaset, è necessario utilizzare un driver ODBC conforme al livello corretto di supporto dell'API ODBC. Per ulteriori informazioni, vedere ODBC e Dynaset.
Vedere anche
Concetti
Recordset: funzionamento dei metodi AddNew, Edit e Delete (ODBC)