Condividi tramite


CDaoRecordset::Edit

 

Pubblicato: aprile 2016

Chiamare la funzione membro per consentire le modifiche al record corrente.

Sintassi

virtual void Edit( );

Note

Una volta che chiama la funzione membro Modifica, le modifiche apportate ai campi del record corrente vengono copiate nel buffer di copia. Dopo aver apportato le modifiche desiderate al record, chiamata Aggiorna per salvare le modifiche. Modifica salva i valori dei membri dati del recordset. Se si chiama Modifica, apportare le modifiche, quindi la chiamata Modifica inoltre, i valori del record viene ripristinata in cui erano prima della prima chiamata Modifica.

Avviso

Se si modifica un record e quindi eseguire qualsiasi operazione che passa a un altro record senza prima Aggiornachiamante, le modifiche vengono perse senza avviso.Inoltre, se si chiude il recordset o il database padre, il record modificato viene rimosso senza avviso.

In alcuni casi, può essere necessario aggiornare una colonna facendo per annullare (non contiene dati). A tale scopo, chiamare SetFieldNull con un parametro TRUE per contrassegnare null di campo, anche questo modo la colonna viene aggiornata. Se si desidera un campo da scrivere nell'origine dati anche se il valore non è stato modificato, chiamare SetFieldDirty con un parametro TRUE. Ciò vale anche se il campo è stata null di valore.

Il framework contrassegna i membri dati di campo modificati per verificare verrà scritto nel record nell'origine dati dal meccanismo di trasferimento di campi di record DAO (DFX). Modificare il valore di un campo in genere imposta il campo modificato automaticamente, pertanto è necessario raramente chiamare SetFieldDirty manualmente, ma talvolta può essere necessario assicurarsi che le colonne in modo esplicito vengano inserite o aggiornate indipendentemente dal valore contenuto nel membro dati di campo. Il meccanismo di DFX utilizza anche l'utilizzo PSEUDO NULL. Per ulteriori informazioni, vedere CDaoFieldExchange::m_nOperation.

Se il meccanismo di doppio buffer non sta utilizzando, quindi modificare il valore del campo non imposta automaticamente il campo come modificato. In questo caso, sarà necessario in modo esplicito da impostare il campo modificato. Il flag contenuto in m_bCheckCacheForDirtyFields controlla il controllo automatico del campo.

Quando l'oggetto recordset di blocco pessimistico in un ambiente multiutente, il record rimane bloccato dal momento Modifica viene utilizzato finché l'aggiornamento non sia completo. Se il recordset è bloccato ottimistico, il record viene bloccato e confrontato con il record preredatto prima che viene aggiornato nel database. Se il record è stato modificato da quando è stato chiamato Modifica, l'operazione Aggiorna ha esito negativo e MFC genera un'eccezione. È possibile modificare la modalità di blocco con SetLockingMode.

Nota

Il blocco ottimistico è sempre utilizzato sui formati di database esterno, come ODBC e ISAM installabile.

Il record corrente rimane corrente dopo avere chiamato Modifica. Per chiamare Modifica, deve esistere un record corrente. Se non esiste alcun record corrente o se il recordset non fa riferimento a un oggetto recordset di tipo tabella o di tipo dynaset aperto, si verifica un'eccezione. Chiamare Modifica modo CDaoException venga generato nelle seguenti circostanze:

  • Non è disponibile alcun record corrente.

  • Il database o il recordset è in sola lettura.

  • Non esistono campi del record aggiornabili.

  • Il database o il recordset viene aperto in modo esclusivo da un altro utente.

  • Un altro utente ha impedito la pagina che contiene il record.

Se l'origine dati supporta le transazioni, è possibile fare parte della chiamata Modifica di una transazione. Si noti che è necessario chiamare CDaoWorkspace::BeginTrans prima di chiamare Modifica e dopo che il recordset viene aperto. Si noti inoltre che chiamare CDaoWorkspace::CommitTrans non è un operativo per chiamare Aggiorna per completare l'operazione Modifica. Per ulteriori informazioni sulle transazioni, vedere la classe CDaoWorkspace.

Per informazioni correlate, vedere gli argomenti "metodo di AddNew", "metodo di modifica", "metodo delete", "metodo di aggiornamento" e "proprietà" aggiornabile nella Guida di DAO.

Requisiti

Header: afxdao.h

Vedere anche

CDaoRecordset Class
Grafico delle gerarchie
CDaoRecordset::AddNew
CDaoRecordset::CancelUpdate
CDaoRecordset::CanTransact
CDaoRecordset::Delete
CDaoRecordset::Update