FileRecordSequence.ReserveAndAppend Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Automatycznie tworzy pojedynczą rezerwację i dołącza rekord do sekwencji.
Przeciążenia
ReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[]) |
Automatycznie tworzy pojedynczą rezerwację i dołącza rekord do sekwencji. Tej metody nie można dziedziczyć. |
ReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[]) |
Automatycznie tworzy pojedynczą rezerwację i dołącza rekord do sekwencji. Tej metody nie można dziedziczyć. |
ReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])
Automatycznie tworzy pojedynczą rezerwację i dołącza rekord do sekwencji. Tej metody nie można dziedziczyć.
public:
virtual System::IO::Log::SequenceNumber ReserveAndAppend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, ... cli::array <long> ^ reservations);
public System.IO.Log.SequenceNumber ReserveAndAppend (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, params long[] reservations);
abstract member ReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] -> System.IO.Log.SequenceNumber
override this.ReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] -> System.IO.Log.SequenceNumber
Public Function ReserveAndAppend (data As IList(Of ArraySegment(Of Byte)), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, ParamArray reservations As Long()) As SequenceNumber
Parametry
- data
- IList<ArraySegment<Byte>>
Lista segmentów tablic bajtowych, które będą łączone i dołączane jako rekord.
- nextUndoRecord
- SequenceNumber
Numer sekwencji następnego rekordu w określonej przez użytkownika kolejności.
- previousRecord
- SequenceNumber
Numer sekwencji następnego rekordu w poprzedniej kolejności.
- recordAppendOptions
- RecordAppendOptions
Prawidłowa wartość określa sposób zapisywania RecordAppendOptions danych.
- reservationCollection
- ReservationCollection
Kolekcja rezerwacji do dokonywania rezerwacji.
- reservations
- Int64[]
Rezerwacje do wykonania w bajtach.
Zwraca
Numer sekwencji dołączonego rekordu dziennika.
Implementuje
Wyjątki
Co najmniej jeden z argumentów to null
.
Co najmniej jeden argument jest poza zakresem.
reservations
nie został utworzony przez tę sekwencję rekordów.
Nie można wykonać operacji, ponieważ sekwencja rekordów została otwarta z dostępem tylko do odczytu.
Nie można wykonać żądania z powodu nieoczekiwanego wyjątku we/wy.
Metoda została wywołana po usunięciu sekwencji.
Za mało pamięci, aby kontynuować wykonywanie programu.
Sekwencja rekordów jest pełna.
Uwagi
Dane zawarte w parametrze data
zostaną łączone w jedną tablicę bajtów na potrzeby dołączania jako rekordu. Jednak podczas odczytywania rekordu nie jest wprowadzana żadna aprowizacja dzielenia danych z powrotem na segmenty tablic.
Określone rezerwacje są dodawane do udostępnionej kolekcji rezerwacji w operacji niepodzielnej z operacją dołączania rekordów. Jeśli dołączanie zakończy się niepowodzeniem, żadne miejsce nie jest zarezerwowane.
Zwykle ta metoda może zakończyć się przed zapisaniem rekordu. Aby upewnić się, że rekord został zapisany, określ flagę ForceFlush przy użyciu parametru recordAppendOptions
lub wywołaj metodę Flush .
Dotyczy
ReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])
Automatycznie tworzy pojedynczą rezerwację i dołącza rekord do sekwencji. Tej metody nie można dziedziczyć.
public:
virtual System::IO::Log::SequenceNumber ReserveAndAppend(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, ... cli::array <long> ^ reservations);
public System.IO.Log.SequenceNumber ReserveAndAppend (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, params long[] reservations);
abstract member ReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] -> System.IO.Log.SequenceNumber
override this.ReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] -> System.IO.Log.SequenceNumber
Public Function ReserveAndAppend (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, ParamArray reservations As Long()) As SequenceNumber
Parametry
- data
- ArraySegment<Byte>
Lista segmentów tablic bajtowych, które będą łączone i dołączane jako rekord.
- nextUndoRecord
- SequenceNumber
Numer sekwencji następnego rekordu w określonej przez użytkownika kolejności.
- previousRecord
- SequenceNumber
Numer sekwencji następnego rekordu w poprzedniej kolejności.
- recordAppendOptions
- RecordAppendOptions
Prawidłowa wartość określa sposób zapisywania RecordAppendOptions danych.
- reservationCollection
- ReservationCollection
Obiekt ReservationCollection zawierający kolekcję do dokonywania rezerwacji.
- reservations
- Int64[]
Rezerwacje do wykonania w bajtach.
Zwraca
Numer sekwencji dołączonego rekordu dziennika.
Implementuje
Wyjątki
Co najmniej jeden z argumentów to null
.
Co najmniej jeden argument jest poza zakresem.
reservations
nie został utworzony przez tę sekwencję rekordów.
Nie można wykonać operacji, ponieważ sekwencja rekordów została otwarta z dostępem tylko do odczytu.
Nie można wykonać żądania z powodu nieoczekiwanego wyjątku we/wy.
Metoda została wywołana po usunięciu sekwencji.
Za mało pamięci, aby kontynuować wykonywanie programu.
Sekwencja rekordów jest pełna.
Uwagi
Dane zawarte w parametrze data
zostaną łączone w jedną tablicę bajtów na potrzeby dołączania jako rekordu. Jednak podczas odczytywania rekordu nie jest wprowadzana żadna aprowizacja dzielenia danych z powrotem na segmenty tablic.
Określone rezerwacje są dodawane do udostępnionej kolekcji rezerwacji w operacji niepodzielnej z operacją dołączania rekordów. Jeśli dołączanie zakończy się niepowodzeniem, żadne miejsce nie jest zarezerwowane.
Zwykle ta metoda może zakończyć się przed zapisaniem rekordu. Aby upewnić się, że rekord został zapisany, określ flagę ForceFlush przy użyciu parametru recordAppendOptions
lub wywołaj metodę Flush .