FileRecordSequence.ReserveAndAppend Methode

Definition

Führt automatisch eine einzelne Reservierung durch und fügt der Sequenz einen Datensatz an.

Überlädt

ReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

Führt automatisch eine einzelne Reservierung durch und fügt der Sequenz einen Datensatz an. Diese Methode kann nicht vererbt werden.

ReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

Führt automatisch eine einzelne Reservierung durch und fügt der Sequenz einen Datensatz an. Diese Methode kann nicht vererbt werden.

ReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

Führt automatisch eine einzelne Reservierung durch und fügt der Sequenz einen Datensatz an. Diese Methode kann nicht vererbt werden.

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

Parameter

data
IList<ArraySegment<Byte>>

Eine Liste von Bytearraysegmenten, die verkettet und als Datensatz angefügt werden.

nextUndoRecord
SequenceNumber

Die Sequenznummer des nächsten Datensatzes in der vom Benutzer angegebenen Reihenfolge.

previousRecord
SequenceNumber

Die Sequenznummer des nächsten Datensatzes in vorheriger Reihenfolge.

recordAppendOptions
RecordAppendOptions

Ein gültiger Wert für RecordAppendOptions, der angibt, wie die Daten geschrieben werden sollten.

reservationCollection
ReservationCollection

Die Reservierungsauflistung, in der Reservierungen vorgenommen werden können.

reservations
Int64[]

Die vorzunehmenden Reservierungen in Byte.

Gibt zurück

Die Sequenznummer des angefügten Datensatzes.

Implementiert

Ausnahmen

Mindestens ein Argument ist null.

Mindestens ein Argument liegt außerhalb des Bereichs.

reservations wurde nicht von dieser Datensatzsequenz erstellt.

Der Vorgang kann nicht ausgeführt werden, da die Datensatzsequenz mit schreibgeschütztem Zugriff geöffnet wurde.

Die Anforderung konnte aufgrund einer unerwarteten E/A-Ausnahme nicht ausgeführt werden.

Die Methode wurde aufgerufen, nachdem die Sequenz verworfen wurde.

Der Arbeitsspeicher reicht nicht aus, um die Ausführung des Programms fortzusetzen.

Die Datensatzsequenz ist voll.

Hinweise

Die im data-Parameter enthaltenen Daten werden zum Anfügen als Datensatz in einem Array mit einem Byte verkettet. Die Daten können jedoch nicht wieder in Arraysegmente aufgeteilt werden, nachdem der Datensatz gelesen wurde.

Die angegebenen Reservierungen werden in einer atomaren Operation mit einem Vorgang zum Anfügen von Datensätzen der bereitgestellten Reservierungsauflistung hinzugefügt. Wenn der Anfügevorgang scheitert, wird kein Speicherplatz reserviert.

Normalerweise kann diese Methode abgeschlossen werden, bevor der Datensatz geschrieben wird. Um sicherzustellen, dass ein Datensatz geschrieben wurde, geben Sie entweder das ForceFlush-Flag mithilfe des recordAppendOptions-Parameters an, oder rufen Sie die Flush-Methode auf.

Gilt für:

ReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

Führt automatisch eine einzelne Reservierung durch und fügt der Sequenz einen Datensatz an. Diese Methode kann nicht vererbt werden.

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

Parameter

data
ArraySegment<Byte>

Eine Liste von Bytearraysegmenten, die verkettet und als Datensatz angefügt werden.

nextUndoRecord
SequenceNumber

Die Sequenznummer des nächsten Datensatzes in der vom Benutzer angegebenen Reihenfolge.

previousRecord
SequenceNumber

Die Sequenznummer des nächsten Datensatzes in vorheriger Reihenfolge.

recordAppendOptions
RecordAppendOptions

Ein gültiger Wert für RecordAppendOptions, der angibt, wie die Daten geschrieben werden sollten.

reservationCollection
ReservationCollection

Eine ReservationCollection, die die Auflistung enthält, in der Reservierungen vorgenommen werden.

reservations
Int64[]

Die vorzunehmenden Reservierungen in Byte.

Gibt zurück

Die Sequenznummer des angefügten Datensatzes.

Implementiert

Ausnahmen

Mindestens ein Argument ist null.

Mindestens ein Argument liegt außerhalb des Bereichs.

reservations wurde nicht von dieser Datensatzsequenz erstellt.

Der Vorgang kann nicht ausgeführt werden, da die Datensatzsequenz mit schreibgeschütztem Zugriff geöffnet wurde.

Die Anforderung konnte aufgrund einer unerwarteten E/A-Ausnahme nicht ausgeführt werden.

Die Methode wurde aufgerufen, nachdem die Sequenz verworfen wurde.

Der Arbeitsspeicher reicht nicht aus, um die Ausführung des Programms fortzusetzen.

Die Datensatzsequenz ist voll.

Hinweise

Die im data-Parameter enthaltenen Daten werden zum Anfügen als Datensatz in einem Array mit einem Byte verkettet. Die Daten können jedoch nicht wieder in Arraysegmente aufgeteilt werden, nachdem der Datensatz gelesen wurde.

Die angegebenen Reservierungen werden in einer atomaren Operation mit einem Vorgang zum Anfügen von Datensätzen der bereitgestellten Reservierungsauflistung hinzugefügt. Wenn der Anfügevorgang scheitert, wird kein Speicherplatz reserviert.

Normalerweise kann diese Methode abgeschlossen werden, bevor der Datensatz geschrieben wird. Um sicherzustellen, dass ein Datensatz geschrieben wurde, geben Sie entweder das ForceFlush-Flag mithilfe des recordAppendOptions-Parameters an, oder rufen Sie die Flush-Methode auf.

Gilt für: