Partager via


LogRecordSequence.Append Méthode

Définition

Écrit un enregistrement de journal dans l'interface IRecordSequence.

Surcharges

Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

Ajoute un enregistrement de journal à l'interface IRecordSequence, en utilisant l'espace précédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

Ajoute un enregistrement de journal à l'interface IRecordSequence, en utilisant l'espace précédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)

Écrit un enregistrement de journal dans l'interface LogRecordSequence. Cette méthode ne peut pas être héritée.

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)

Ajoute un enregistrement de journal à l'interface IRecordSequence. Cette méthode ne peut pas être héritée.

Exemples

Cet exemple montre comment utiliser le membre Append.

    // Append records. Appending three records.
    public void AppendRecords()
    {
        Console.WriteLine("Appending Log Records...");
        SequenceNumber previous = SequenceNumber.Invalid;

        previous = sequence.Append(CreateData("Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
        previous = sequence.Append(CreateData("This is my first Logging App"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
        previous = sequence.Append(CreateData("Using LogRecordSequence..."), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);

        Console.WriteLine("Done...");
    }
' Append records. Appending three records.  
Public Sub AppendRecords()
    Console.WriteLine("Appending Log Records...")
    Dim previous As SequenceNumber = SequenceNumber.Invalid

    previous = sequence.Append(CreateData("Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
    previous = sequence.Append(CreateData("This is my first Logging App"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
    previous = sequence.Append(CreateData("Using LogRecordSequence..."), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)

    Console.WriteLine("Done...")
End Sub

Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

Ajoute un enregistrement de journal à l'interface IRecordSequence, en utilisant l'espace précédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

public:
 virtual System::IO::Log::SequenceNumber Append(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservations);
public System.IO.Log.SequenceNumber Append (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservations);
abstract member Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
override this.Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
Public Function Append (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservations As ReservationCollection) As SequenceNumber

Paramètres

data
ArraySegment<Byte>

Liste des segments de tableau d'octets qui seront concaténés et ajoutés en tant qu'enregistrement.

nextUndoRecord
SequenceNumber

Numéro de séquence de l'enregistrement suivant dans l'ordre spécifié par l'utilisateur.

previousRecord
SequenceNumber

Numéro de séquence de l'enregistrement suivant dans l'ordre précédent.

recordAppendOptions
RecordAppendOptions

Une valeur valide de RecordAppendOptions qui spécifie comment les données doivent être écrites.

reservations
ReservationCollection

ReservationCollection qui contient la réservation qui doit être utilisée pour cet enregistrement.

Retours

Numéro de séquence de l'enregistrement du journal ajouté.

Implémente

Exceptions

userRecord ou previousRecord n'est pas valide pour cette séquence.

- ou -

data ne peut pas être ajouté car il est supérieur à la taille d'enregistrement maximale.

- ou -

reservations n'a pas été créé par cette séquence d'enregistrement.

Un ou plusieurs arguments ont la valeur null.

userRecord ou previousRecord n'est pas compris entre le numéro de base et les derniers numéros de cette séquence.

La requête n'a pas pu être exécutée en raison d'une exception d'E/S inattendue.

- ou -

La requête n'a pas pu être exécutée en raison d'une erreur de périphérique d'E/S.

L'opération ne peut pas être effectuée car la séquence d'enregistrement a été ouverte en lecture seule.

La méthode a été appelée après la suppression de la séquence.

La mémoire disponible n'est pas suffisante pour continuer l'exécution du programme.

La séquence d'enregistrement est complète.

L'accès à la séquence de journal spécifiée est refusé par le système d'exploitation.

Aucune réservation assez grande pour data ne se trouve dans reservations.

Remarques

Les données contenues dans le paramètre data seront concaténées dans un tableau d'octets unique pour l'ajouter en tant qu'enregistrement. Toutefois, il n'est pas possible de rétablir les segments du tableau en fractionnant les données lors de la lecture de l'enregistrement.

L'enregistrement ajouté utilisera l'espace qui a été réservé précédemment, à l'aide d'une réservation spécifiée par le paramètre reservations. Si l'ajout réussit, il utilisera la plus petite zone de réservation qui peut stocker les données et cette zone de réservation sera supprimée de la collection.

Normalement, cette méthode se termine avant que l'enregistrement ait été écrit. Pour vous assurer de l'écriture d'un enregistrement, spécifiez l'indicateur ForceFlush à l'aide du paramètre recordAppendOptions ou appelez la méthode Flush.

S’applique à

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

Ajoute un enregistrement de journal à l'interface IRecordSequence, en utilisant l'espace précédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

public:
 virtual System::IO::Log::SequenceNumber Append(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservations);
public System.IO.Log.SequenceNumber Append (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber userRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservations);
abstract member Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
override this.Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
Public Function Append (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservations As ReservationCollection) As SequenceNumber

Paramètres

data
IList<ArraySegment<Byte>>

Liste des segments de tableau d'octets qui seront concaténés et ajoutés en tant qu'enregistrement.

userRecord
SequenceNumber

Numéro de séquence de l'enregistrement suivant dans l'ordre spécifié par l'utilisateur.

previousRecord
SequenceNumber

Numéro de séquence de l'enregistrement suivant dans l'ordre précédent.

recordAppendOptions
RecordAppendOptions

Une valeur valide de RecordAppendOptions qui spécifie comment les données doivent être écrites.

reservations
ReservationCollection

ReservationCollection qui contient la réservation qui doit être utilisée pour cet enregistrement.

Retours

Numéro de séquence de l'enregistrement du journal ajouté.

Implémente

Exceptions

userRecord ou previousRecord n'est pas valide pour cette séquence.

- ou -

data ne peut pas être ajouté car il est supérieur à la taille d'enregistrement maximale.

- ou -

reservations n'a pas été créé par cette séquence d'enregistrement.

Un ou plusieurs arguments ont la valeur null.

userRecord ou previousRecord n'est pas compris entre le numéro de base et les derniers numéros de cette séquence.

La requête n'a pas pu être exécutée en raison d'une exception d'E/S inattendue.

- ou -

La requête n'a pas pu être exécutée en raison d'une erreur de périphérique d'E/S.

L'opération ne peut pas être effectuée car la séquence d'enregistrement a été ouverte en lecture seule.

La méthode a été appelée après la suppression de la séquence.

La mémoire disponible n'est pas suffisante pour continuer l'exécution du programme.

La séquence d'enregistrement est complète.

L'accès à la séquence de journal spécifiée est refusé par le système d'exploitation.

Aucune réservation assez grande pour data ne se trouve dans reservations.

Remarques

Les données contenues dans le paramètre data seront concaténées dans un tableau d'octets unique pour l'ajouter en tant qu'enregistrement. Toutefois, il n'est pas possible de rétablir les segments du tableau en fractionnant les données lors de la lecture de l'enregistrement.

L'enregistrement ajouté utilisera l'espace qui a été réservé précédemment, à l'aide d'une réservation spécifiée par le paramètre reservations. Si l'ajout réussit, il utilisera la plus petite zone de réservation qui peut stocker les données et cette zone de réservation sera supprimée de la collection.

Normalement, cette méthode se termine avant que l'enregistrement ait été écrit. Pour vous assurer de l'écriture d'un enregistrement, spécifiez l'indicateur ForceFlush à l'aide du paramètre recordAppendOptions ou appelez la méthode Flush.

S’applique à

Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)

Écrit un enregistrement de journal dans l'interface LogRecordSequence. Cette méthode ne peut pas être héritée.

public:
 virtual System::IO::Log::SequenceNumber Append(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions);
public System.IO.Log.SequenceNumber Append (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions);
abstract member Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
override this.Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
Public Function Append (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions) As SequenceNumber

Paramètres

data
ArraySegment<Byte>

Liste des segments de tableau d'octets qui seront concaténés et ajoutés en tant qu'enregistrement.

nextUndoRecord
SequenceNumber

Numéro de séquence de l'enregistrement suivant dans l'ordre spécifié par l'utilisateur.

previousRecord
SequenceNumber

Numéro de séquence de l'enregistrement suivant dans l'ordre précédent.

recordAppendOptions
RecordAppendOptions

Une valeur valide de RecordAppendOptions qui spécifie comment les données doivent être écrites.

Retours

Numéro de séquence de l'enregistrement du journal ajouté.

Implémente

Exceptions

userRecord ou previousRecord n'est pas valide pour cette séquence.

- ou -

data ne peut pas être ajouté car il est supérieur à la taille d'enregistrement maximale.

- ou -

reservations n'a pas été créé par cette séquence d'enregistrement.

Un ou plusieurs arguments ont la valeur null.

userRecord ou previousRecord n'est pas compris entre le numéro de base et les derniers numéros de cette séquence.

La requête n'a pas pu être exécutée en raison d'une exception d'E/S inattendue.

- ou -

La requête n'a pas pu être exécutée en raison d'une erreur de périphérique d'E/S.

L'opération ne peut pas être effectuée car la séquence d'enregistrement a été ouverte en lecture seule.

La méthode a été appelée après la suppression de la séquence.

La mémoire disponible n'est pas suffisante pour continuer l'exécution du programme.

La séquence d'enregistrement est complète.

L'accès à la séquence de journal spécifiée est refusé par le système d'exploitation.

Exemples

L'exemple suivant montre comment utiliser cette méthode pour ajouter un enregistrement à une séquence dans le journal.

// Start Appending in two streams with interleaving appends.

        SequenceNumber previous1 = SequenceNumber.Invalid;
        SequenceNumber previous2 = SequenceNumber.Invalid;

        Console.WriteLine("Appending interleaving records in stream1 and stream2...");
        Console.WriteLine();
// Append two records in stream1.
        previous1 = sequence1.Append(
            CreateData("MyLogStream1: Hello World!"),
            SequenceNumber.Invalid,
            SequenceNumber.Invalid,
            RecordAppendOptions.ForceFlush);
        previous1 = sequence1.Append(
            CreateData("MyLogStream1: This is my first Logging App"),
            previous1,
            previous1,
            RecordAppendOptions.ForceFlush);

// Append two records in stream2.
        previous2 = sequence2.Append(
            CreateData("MyLogStream2: Hello World!"),
            SequenceNumber.Invalid,
            SequenceNumber.Invalid,
            RecordAppendOptions.ForceFlush);
        previous2 = sequence2.Append(
            CreateData("MyLogStream2: This is my first Logging App"),
            previous2,
            previous2,
            RecordAppendOptions.ForceFlush);

// Append the third record in stream1.
        previous1 = sequence1.Append(CreateData(
            "MyLogStream1: Using LogRecordSequence..."),
            previous1,
            previous1,
            RecordAppendOptions.ForceFlush);
        
// Append the third record in stream2.
        previous2 = sequence2.Append(
            CreateData("MyLogStream2: Using LogRecordSequence..."),
            previous2,
            previous2,
            RecordAppendOptions.ForceFlush);
' Start Appending in two streams with interleaving appends.

        Dim previous1 As SequenceNumber = SequenceNumber.Invalid
        Dim previous2 As SequenceNumber = SequenceNumber.Invalid

        Console.WriteLine("Appending interleaving records in stream1 and stream2...")
        Console.WriteLine()
' Append two records in stream1.
        previous1 = sequence1.Append(CreateData("MyLogStream1: Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
        previous1 = sequence1.Append(CreateData("MyLogStream1: This is my first Logging App"), previous1, previous1, RecordAppendOptions.ForceFlush)

' Append two records in stream2.
        previous2 = sequence2.Append(CreateData("MyLogStream2: Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
        previous2 = sequence2.Append(CreateData("MyLogStream2: This is my first Logging App"), previous2, previous2, RecordAppendOptions.ForceFlush)

' Append the third record in stream1.
        previous1 = sequence1.Append(CreateData("MyLogStream1: Using LogRecordSequence..."), previous1, previous1, RecordAppendOptions.ForceFlush)

' Append the third record in stream2.
        previous2 = sequence2.Append(CreateData("MyLogStream2: Using LogRecordSequence..."), previous2, previous2, RecordAppendOptions.ForceFlush)

Remarques

Les données contenues dans le paramètre data seront concaténées dans un tableau d'octets unique pour l'ajouter en tant qu'enregistrement. Toutefois, il n'est pas possible de rétablir les segments du tableau en fractionnant les données lors de la lecture de l'enregistrement.

Normalement, cette méthode se termine avant que l'enregistrement ait été écrit. Pour vous assurer de l'écriture d'un enregistrement, spécifiez l'indicateur ForceFlush à l'aide du paramètre recordAppendOptions ou appelez la méthode Flush.

S’applique à

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)

Ajoute un enregistrement de journal à l'interface IRecordSequence. Cette méthode ne peut pas être héritée.

public:
 virtual System::IO::Log::SequenceNumber Append(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions);
public System.IO.Log.SequenceNumber Append (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber userRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions);
abstract member Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
override this.Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
Public Function Append (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions) As SequenceNumber

Paramètres

data
IList<ArraySegment<Byte>>

Liste des segments de tableau d'octets qui seront concaténés et ajoutés en tant qu'enregistrement.

userRecord
SequenceNumber

Numéro de séquence de l'enregistrement suivant dans l'ordre spécifié par l'utilisateur.

previousRecord
SequenceNumber

Numéro de séquence de l'enregistrement suivant dans l'ordre précédent.

recordAppendOptions
RecordAppendOptions

Une valeur valide de RecordAppendOptions qui spécifie comment les données doivent être écrites.

Retours

Numéro de séquence de l'enregistrement du journal ajouté.

Implémente

Exceptions

userRecord ou previousRecord n'est pas valide pour cette séquence.

- ou -

data ne peut pas être ajouté car il est supérieur à la taille d'enregistrement maximale.

- ou -

reservations n'a pas été créé par cette séquence d'enregistrement.

Un ou plusieurs arguments ont la valeur null.

userRecord ou previousRecord n'est pas compris entre le numéro de base et les derniers numéros de cette séquence.

La requête n'a pas pu être exécutée en raison d'une exception d'E/S inattendue.

- ou -

La requête n'a pas pu être exécutée en raison d'une erreur de périphérique d'E/S.

L'opération ne peut pas être effectuée car la séquence d'enregistrement a été ouverte en lecture seule.

La méthode a été appelée après la suppression de la séquence.

La mémoire disponible n'est pas suffisante pour continuer l'exécution du programme.

La séquence d'enregistrement est complète.

L'accès à la séquence de journal spécifiée est refusé par le système d'exploitation.

Remarques

Les données contenues dans le paramètre data seront concaténées dans un tableau d'octets unique pour l'ajouter en tant qu'enregistrement. Toutefois, il n'est pas possible de rétablir les segments du tableau en fractionnant les données lors de la lecture de l'enregistrement.

Normalement, cette méthode se termine avant que l'enregistrement ait été écrit. Pour vous assurer de l'écriture d'un enregistrement, spécifiez l'indicateur ForceFlush à l'aide du paramètre recordAppendOptions ou appelez la méthode Flush.

S’applique à