Udostępnij za pośrednictwem


CDaoRecordset::AddNew

Wywołanie tej funkcji Członkowskich, aby dodać nowy rekord do tabeli typu lub dynamicznego zestawu rekordów.

virtual void AddNew( );

Uwagi

Rekordów są początkowo Null.(W terminologii baz danych Null oznacza "posiadające wartość nie" i nie jest taki sam, jak NULL w języku C++.) Aby wykonać operację, należy wywołać Aktualizacja funkcji składowej.Aktualizacja zapisuje zmiany w źródle danych.

Informacje dotyczące przestrogiPrzestroga

Jeżeli edytowanie rekordu, a następnie przewiń w do innego rekordu bez wywołania Aktualizacja, zmiany zostaną utracone bez ostrzeżenia.

Jeśli po dodaniu rekordu do dynamicznego zestawu rekordów, wywołując AddNew, rekord jest widoczne w zestawie rekordów i uwzględnione w tabeli podstawowej, gdzie staje się widoczny do wszelkich nowych CDaoRecordset obiektów.

Położenie nowego rekordu, zależy od typu zestawu rekordów:

  • W przypadku dynamicznego zestawu rekordów, gdzie dodaje nowy rekord nie jest gwarantowane.To zachowanie jest zmieniona z Microsoft Jet w wersji 3.0 ze względu na wydajność i współbieżności.Jeśli celem jest nowo dodany rekord stał się rekordem bieżącym, get zakładki ostatni modyfikowany rekord i przenieść do tej zakładki:

    rs.SetBookmark(rs.GetLastModifiedBookmark());
    
  • W zestawie rekordów tabeli typu dla którego został określony indeks zwracane są rekordy w odpowiednie miejsca w kolejności sortowania.Jeśli indeks nie została określona, nowe rekordy są zwracane na końcu zestawu rekordów.

Rekord, który był bieżącym przed użyto AddNew pozostaje bieżącym.Jeśli chcesz utworzyć nowy rekord bieżący zestaw rekordów obsługuje zakładki wywołanie SetBookmark do zakładki identyfikowane przez ustawienie właściwości LastModified obiektu podstawowego zestawu rekordów DAO.Ten sposób jest użyteczne przy określaniu wartości dla pól liczników (automatycznego przyrostu) dodanego rekordu.Aby uzyskać więcej informacji, zobacz GetLastModifiedBookmark.

Jeśli baza danych obsługuje transakcje, można wprowadzać na AddNew wywołania częścią transakcji.Aby uzyskać więcej informacji dotyczących transakcji, zobacz klasy CDaoWorkspace.Należy zauważyć, że należy wywołać CDaoWorkspace::BeginTrans przed wywoływaniem AddNew.

Niedozwolone wywołanie jest AddNew zestawu rekordów którego Otwórz Członkowskich funkcja nie została wywołana.A CDaoException jest generowany, jeśli AddNew dla zestawu rekordów, które nie mogą być dołączane.Można określić, czy zestaw rekordów jest aktualizowalnych, wywołując CanAppend.

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.

[!UWAGA]

Jeśli rekordy są buforowane podwójne (pole Automatyczne sprawdzanie jest włączone), wywołanie CancelUpdate przywróci zmienne składowe wartości mieli przed AddNew lub Edytuj została wywołana.

Aby uzyskać pokrewne informacje zobacz tematy "Metoda AddNew", "Metoda CancelUpdate", "Właściwość LastModified" i "Właściwość EditMode" w pomocy DAO.

Wymagania

Nagłówek: afxdao.h

Zobacz też

Informacje

Klasa CDaoRecordset

Wykres hierarchii

CDaoRecordset::CanUpdate

CDaoRecordset::CancelUpdate

CDaoRecordset::Delete

CDaoRecordset::Edit

CDaoRecordset::Update

CDaoRecordset::CanTransact