PipelineBuffer Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit un magasin de données en mémoire contenant des lignes et des colonnes de données.
public ref class PipelineBuffer : IDisposable
public class PipelineBuffer : IDisposable
type PipelineBuffer = class
interface IDisposable
Public Class PipelineBuffer
Implements IDisposable
- Héritage
-
PipelineBuffer
- Implémente
Exemples
L’exemple suivant montre un composant de transformation qui itère les lignes et colonnes de a PipelineBuffer dans ProcessInput.
using System;
using Microsoft.SqlServer.Dts;
using Microsoft.SqlServer.Dts.Pipeline;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
namespace Microsoft.Samples.SqlServer.Dts
{
[DtsPipelineComponent
(
DisplayName="SampleComponent",
ComponentType=ComponentType.Transform
)]
public class SampleComponent: PipelineComponent
{
public override void ProvideComponentProperties()
{
base.ProvideComponentProperties();
///Name the input and output add by the base class.
ComponentMetaData.InputCollection[0].Name = "SampleInput";
ComponentMetaData.OutputCollection[0].Name = "SampleOutput";
}
public override void ProcessInput(int inputID, PipelineBuffer buffer)
{
IDTSInput100 input = ComponentMetaData.InputCollection.GetObjectByID(inputID);
while (buffer.NextRow())
{
foreach (IDTSInputColumn100 col in input.InputColumnCollection)
{
int colIndex = BufferManager.FindColumnByLineageID(input.Buffer,col.LineageID);
object colData = buffer[colIndex];
//TODO: Do something with the column data.
}
}
}
}
}
L’exemple suivant montre un composant source qui ajoute des lignes au tampon de sortie dans PrimeOutput.
using System;
using Microsoft.SqlServer.Dts;
using Microsoft.SqlServer.Dts.Pipeline;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
namespace Microsoft.Samples.SqlServer.Dts
{
[DtsPipelineComponent
(
DisplayName="SampleComponent",
ComponentType=ComponentType.SourceComponent
)]
public class SampleComponent: PipelineComponent
{
public override void PrimeOutput(int outputs, int[] outputIDs,PipelineBuffer[] buffers)
{
int rows = 100;
PipelineBuffer buf = buffers[0];
IDTSOutput100 output = ComponentMetaData.OutputCollection[0];
Random rand = new Random();
//Loop rows number of times
for(int r = 0; r < rows; r++)
{
buf.AddRow();
foreach( IDTSOutputColumn100 col in output.OutputColumnCollection)
{
int colIndex = BufferManager.FindColumnByLineageID( output.Buffer, col.LineageID);
// Note, buffer columns containing binary large objects
// can not be set using the following syntax. Instead,
// the AddBlobData and SetBytes methods are used.
buf[colIndex] = rand.Next();
}
}
buf.SetEndOfRowset();
}
}
}
Remarques
Il PipelineBuffer s’agit d’un magasin de données bidimensionnel en mémoire contenant des lignes et des colonnes. Il est créé par la tâche de flux de données et fourni aux composants de flux de données gérés lors de l’exécution. Les colonnes contenues dans un tampon sont basées sur les colonnes des IDTSOutputColumnCollection100 collections des composantes du graphe.
Les composants source et les composants avec des sorties asynchrones reçoivent un tampon pour chacun des objets de sortie connectés à un composant en aval. Ces tampons sont appelés tampons de sortie et ne contiennent pas de lignes. Le composant qui reçoit le tampon de sortie ajoute des lignes au tampon et appelle la SetEndOfRowset méthode une fois terminée. Cette méthode fixe la valeur de la EndOfRowset propriété à true sur le tampon final. La tâche de flux de données fournit alors ce tampon vers le composant suivant du graphe.
Les composantes de transformation avec sorties synchrones et composantes de destination reçoivent PipelineBuffer des objets dans la ProcessInput méthode. Le PipelineBuffer reçu dans cette méthode est un Input tampon et contient les lignes ajoutées par les composants en amont. Ce tampon est restreint et ne peut pas être utilisé pour ajouter ou retirer des lignes du tampon.
Il PipelineBuffer est écrit en code managé et prend en charge les développeurs de composants de flux de données managés en rassemblant les données entre le code managé et l’objet COM sous-jacent IDTSBuffer100 .
Pour une liste complète des types de données des Services d’intégration ainsi que des méthodes correspondantes GetSet de la PipelineBuffer classe à utiliser avec chaque type de données, voir Travailler avec les types de données dans le Data Flow.
Constructeurs
| Nom | Description |
|---|---|
| PipelineBuffer(IntPtr, PipelineBufferMode) |
Instancie une nouvelle instance du PipelineBuffer. |
| PipelineBuffer(UInt32, UInt32, UInt64, IntPtr*, DTP_BUFFCOL*, Boolean) |
Initialise une nouvelle instance de la classe PipelineBuffer. |
Propriétés
| Nom | Description |
|---|---|
| ColumnCount |
Obtient le nombre de colonnes dans le PipelineBuffer. |
| ColumnInfo |
Reçoit des métadonnées en lecture seule sur la colonne. |
| CurrentRow |
Obtient l’index de la ligne courante dans le PipelineBuffer. |
| EndOfRowset |
Obtient une valeur indiquant si le courant PipelineBuffer est le tampon final. |
| Item[Int32] |
Valeur de la colonne spécifiée dans la ligne courante |
| Mode |
Obtient une valeur indiquant si a PipelineBuffer est un IDTSInput100 tampon ou un IDTSOutput100 tampon. |
| RowCount |
Ça obtient le nombre de lignes dans l’objet PipelineBuffer . |
| RowSize |
Ça obtient la taille de la rangée dans l’objet PipelineBuffer . |
| RowStarts |
Ça obtient le point de départ de la rangée. |
Méthodes
| Nom | Description |
|---|---|
| AddBlobData(Int32, Byte[], Int32) |
Ajoute un tableau d’un nombre spécifié d’octets à une PipelineBuffer colonne. |
| AddBlobData(Int32, Byte[]) |
Ajoute un tableau d’octets à une PipelineBuffer colonne. |
| AddRow() |
Ajoute une ligne à l’objet PipelineBuffer . |
| DirectErrorRow(Int32, Int32, Int32, Int32) |
Envoie une PipelineBuffer ligne à un IDTSOutput100 dont IsErrorOut la propriété est vraie. |
| DirectErrorRow(Int32, Int32, Int32) |
Envoie une PipelineBuffer ligne à un IDTSOutput100 dont IsErrorOut la propriété est vraie. |
| DirectRow(Int32) |
Envoie une ligne de a PipelineBuffer à la spécifiée IDTSOutput100. |
| Dispose() |
Libère toutes les ressources utilisées par le PipelineBuffer. |
| Dispose(Boolean) |
Libère les ressources non gérées utilisées par le PipelineBuffer, et libère optionnellement les ressources gérées. |
| Finalize() |
Libère toutes les ressources utilisées par le PipelineBuffer. |
| GetBlobData(Int32, Int32, Int32) |
Récupère un tableau d’octets à partir d’un objet binaire grand (BLOB) stocké dans une PipelineBuffer colonne. |
| GetBlobLength(Int32) |
Obtient le nombre d’octets contenus dans une colonne BLOB (binaire grand objet PipelineBuffer ). |
| GetBoolean(Int32) |
Ça enregistre la valeur bool dans la PipelineBuffer colonne. |
| GetByte(Int32) |
Obtient la valeur de l’octet stockée dans la PipelineBuffer colonne. |
| GetBytes(Int32) |
Ça obtient le tableau d’octets stocké dans une colonne tampon. |
| GetColumnInfo(Int32) |
Récupère la BufferColumn structure d’une PipelineBuffer colonne. |
| GetDate(Int32) |
Obtient la valeur DateTime stockée dans la PipelineBuffer colonne. |
| GetDateTime(Int32) |
Obtient la valeur DateTime stockée dans la PipelineBuffer colonne. |
| GetDateTimeOffset(Int32) |
Obtient la valeur DateTimeOffset stockée dans la PipelineBuffer colonne. |
| GetDecimal(Int32) |
Obtient la valeur décimale stockée dans la PipelineBuffer colonne. |
| GetDouble(Int32) |
Ça fait stocker le double dans la PipelineBuffer colonne. |
| GetGuid(Int32) |
Ça enregistre la valeur Guid dans la PipelineBuffer colonne. |
| GetInt16(Int32) |
Ça fait enregistrer le court-circuit dans la PipelineBuffer colonne. |
| GetInt32(Int32) |
Ça fait enregistrer l’intelligence dans une PipelineBuffer colonne. |
| GetInt64(Int32) |
Ça range le long dans la PipelineBuffer colonne. |
| GetSByte(Int32) |
Obtient la valeur SByte stockée dans une PipelineBuffer colonne. |
| GetSingle(Int32) |
Ça fait stocker le flotteur dans une PipelineBuffer colonne. |
| GetString(Int32) |
Ça fait stocker la chaîne dans la colonne tampon. |
| GetTime(Int32) |
Obtient la valeur TimeSpan stockée dans la PipelineBuffer colonne. |
| GetUInt16(Int32) |
Ça obtient la valeur ushort stockée dans la colonne tampon. |
| GetUInt32(Int32) |
Ça enregistre la valeur UInt32 dans la colonne tampon. |
| GetUInt64(Int32) |
Ça fait enregistrer la valeur ulong dans la colonne tampon. |
| IsNull(Int32) |
Vérifie si les données dans une colonne de tampon sont nulles. |
| NextRow() |
Avance à PipelineBuffer la rangée suivante. |
| RemoveRow() |
Supprime la ligne courante de la PipelineBufferligne . |
| ResetBlobData(Int32) |
Supprime le contenu de la colonne BLOB spécifiée. |
| SetBoolean(Int32, Boolean) |
Attribue une valeur bool à une PipelineBuffer colonne. |
| SetByte(Int32, Byte) |
Attribue un octet à une PipelineBuffer colonne. |
| SetBytes(Int32, Byte[]) |
Attribue un tableau d’octets à une colonne tampon. |
| SetDate(Int32, DateTime) |
Attribue une valeur DateHeure à la PipelineBuffer colonne. |
| SetDateTime(Int32, DateTime) |
Attribue une valeur DateHeure à la PipelineBuffer colonne. |
| SetDateTimeOffset(Int32, DateTimeOffset) |
Attribue une valeur DateTimeOffset à la PipelineBuffer colonne. |
| SetDecimal(Int32, Decimal) |
Attribue une décimale à une colonne tampon. |
| SetDouble(Int32, Double) |
Attribue un double à une PipelineBuffer colonne. |
| SetEndOfRowset() |
Avertit le PipelineBuffer qu’un composant a fini d’ajouter des lignes au tampon. |
| SetErrorInfo(Int32, Int32, Int32) |
Définit les informations d’erreur pour la ligne courante PipelineBuffer . |
| SetGuid(Int32, Guid) |
Attribue un Guid à une colonne tampon. |
| SetInt16(Int32, Int16) |
Attribue un entier signé de 16 bits à une colonne tampon. |
| SetInt32(Int32, Int32) |
Attribue un entier signé de 32 bits à une colonne tampon. |
| SetInt64(Int32, Int64) |
Attribue un entier signé de 64 bits à une colonne tampon. |
| SetNull(Int32) |
Attribue null à une colonne tampon. |
| SetSByte(Int32, SByte) |
Attribue un entier signé de 8 bits à une colonne tampon. |
| SetSingle(Int32, Single) |
Attribue un float à une colonne tampon. |
| SetString(Int32, String) |
Attribue une chaîne à une colonne tampon. |
| SetTime(Int32, TimeSpan) |
Attribue une valeur TimeSpan à la PipelineBuffer colonne. |
| SetUInt16(Int32, UInt16) |
Attribue un entier non signé de 16 bits à une colonne tampon. |
| SetUInt32(Int32, UInt32) |
Attribue un entier non signé de 32 bits à une colonne tampon. |
| SetUInt64(Int32, UInt64) |
Attribue un entier non signé de 64 bits à une colonne tampon. |