Udostępnij za pośrednictwem


CDaoRecordset::Edit

 

Wywołanie tej funkcji Członkowskich, aby zezwolić na zmiany w bieżącym rekordzie.

Składnia

virtual void Edit( );

Uwagi

Po wywołaniu Edytuj funkcji składowej, zmiany wprowadzone do pola w bieżącym rekordzie są kopiowane do buforu kopii.Po wprowadź żądane zmiany w rekordzie, należy wywołać Aktualizacja , aby zapisać zmiany.Edytowanie zapisuje wartości elementów danych w zestawie rekordów.Rozmowy Edytuj, zmiany, następnie wywołać Edytuj ponownie wartości rekordów są przywracane były przed pierwszym Edytuj wywołania.

Ostrzeżenie

Jeśli edytowanie rekordu, a następnie wykonać żadnych operacji, która przenosi się do innego rekordu bez pierwszego wywołania Aktualizacja, zmiany zostaną utracone bez ostrzeżenia.Ponadto po zamknięciu zestawu rekordów lub bazy danych nadrzędnego edytowanego rekordu jest odrzucany bez ostrzeżenia.

W niektórych przypadkach można zaktualizować kolumny przez nadanie mu wartość Null (Brak danych zawierających).Aby to zrobić, należy wywołać SetFieldNull z parametrem TRUE , aby oznaczyć pole Null; Powoduje to kolumna aktualizacji.Jeśli pole ma zapisywane do źródła danych, nawet jeśli jego wartość nie została zmieniona, call SetFieldDirty z parametrem TRUE.Działa tak, nawet jeśli pole ma wartość Null.

Znaczniki ramy zmianie pola danych członków, aby upewnić się, że zostaną one zapisane do rekordu w źródle danych przez mechanizm wymiany (DFX) w polu rekordu DAO.Zazwyczaj zmiana wartości pola ustawia w polu dirty automatycznie, więc trzeba będzie rzadko wywołać SetFieldDirty sobie, ale czasami może być zapewnienie, że kolumny zostaną jawnie zaktualizowane lub dodaje się niezależnie od tego, jakie wartość w polu Członek danych.Mechanizm DFX zatrudnia również wykorzystanie PSEUDO NULL.Aby uzyskać więcej informacji, zobacz CDaoFieldExchange::m_nOperation.

Jeśli mechanizm podwójne buforowanie nie jest używany, następnie zmiana wartości pola nie ustawia automatycznie pola jako zanieczyszczony.W takim przypadku należy jawnie ustawić pola zanieczyszczony.Flaga zawartych w m_bCheckCacheForDirtyFields kontroluje, to pole Automatyczne sprawdzanie.

Gdy obiekt recordset pessimistically jest zablokowana w środowisku wielodostępnym, rekord pozostaje zablokowane od czasu Edytuj jest używana momentu ukończenia aktualizacji.Jeżeli zestaw rekordów według optymistycznych jest zablokowany, rekord jest zablokowany i w porównaniu z rekordem sprzed tuż przed jest aktualizowana w bazie danych.Jeśli rekord został zmieniony, ponieważ użytkownik o nazwie Edytuj, Aktualizacja operacja kończy się niepowodzeniem i MFC zgłasza wyjątek.Można zmienić tryb blokowania z SetLockingMode.

Uwaga

Zawsze formatów zewnętrznej bazy danych, takich jak ODBC i instalowalne ISAM używane blokowanie optymistyczne.

Bieżący rekord pozostaje bieżącym po wywołaniu Edytuj.Wywołanie Edytuj, musi być bieżącego rekordu.Brak bieżącego rekordu lub rekordów nie odnosi się do otwartej tabeli lub obiektu recordset dynamicznego, wystąpi wyjątek.Wywołanie Edytuj powoduje, że CDaoException , aby zostać wygenerowany w następujących warunkach:

  • Brak bieżącego rekordu.

  • Bazy danych lub rekordów jest tylko do odczytu.

  • Nie pola w rekordzie, są aktualizowalny.

  • Bazy danych lub zestawu rekordów została otwarta do wyłącznego użytku przez innego użytkownika.

  • Inny użytkownik zablokował strony zawierające rekordu.

Jeśli źródło danych obsługuje transakcje, można utworzyć Edytuj wywołania częścią transakcji.Należy zauważyć, że należy wywołać CDaoWorkspace::BeginTrans przed wywoływaniem Edytuj i po otwarciu zestawu rekordów.Należy również zauważyć, że wywołania CDaoWorkspace::CommitTrans nie jest alternatywą dla wywołania aktualizacji do ukończenia Edytuj operacji.Aby uzyskać więcej informacji dotyczących transakcji, zobacz klasy CDaoWorkspace.

Aby uzyskać pokrewne informacje zobacz tematy "Metoda AddNew", "Edycja metodą", "Metoda Delete", "Metoda aktualizacji" i "Aktualizowalna właściwość" w pomocy DAO.

Wymagania

Nagłówek: afxdao.h

Zobacz też

Klasa CDaoRecordset
Diagram hierarchii
CDaoRecordset::AddNew
CDaoRecordset::CancelUpdate
CDaoRecordset::CanTransact
CDaoRecordset::Delete
CDaoRecordset::Update