Udostępnij za pośrednictwem


Klasa PipelineBuffer

Zapewnia Sklep w pamięci danych zawierających wiersze i kolumny danych.

Hierarchia dziedziczenia

System.Object
  Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer

Przestrzeń nazw:  Microsoft.SqlServer.Dts.Pipeline
Zestaw:  Microsoft.SqlServer.PipelineHost (w Microsoft.SqlServer.PipelineHost.dll)

Składnia

'Deklaracja
Public Class PipelineBuffer _
    Implements IDisposable
'Użycie
Dim instance As PipelineBuffer
public class PipelineBuffer : IDisposable
public ref class PipelineBuffer : IDisposable
type PipelineBuffer =  
    class
        interface IDisposable
    end
public class PipelineBuffer implements IDisposable

Typ PipelineBuffer uwidacznia następujące elementy członkowskie.

Konstruktorzy

  Nazwa Opis
Metoda chroniona PipelineBuffer Uruchamia nowe wystąpienie PipelineBuffer.

Do góry

Właściwości

  Nazwa Opis
Właściwość publiczna ColumnCount Pobiera numer kolumny w PipelineBuffer.
Właściwość publiczna CurrentRow Pobiera indeks bieżącego wiersza w PipelineBuffer.
Właściwość publiczna EndOfRowset Pobiera wartość wskazującą czy bieżące PipelineBuffer jest końcowym buforu.
Właściwość publiczna Item Pobiera dane przechowywane kolumna buforu.
Właściwość publiczna Mode Pobiera wartość wskazującą czy PipelineBuffer jest IDTSInput100 buforu lub IDTSOutput100 buforu.
Właściwość publiczna RowCount Pobiera liczbę wierszy w PipelineBuffer obiektu.

Do góry

Metody

  Nazwa Opis
Metoda publiczna AddBlobData(Int32, array<Byte[]) Dodaje tablicę bajtów, aby PipelineBuffer kolumna.
Metoda publiczna AddBlobData(Int32, array<Byte[], Int32) Dodaje tablicę określoną liczbę bajtów do PipelineBuffer kolumna.
Metoda publiczna AddRow Dodaje wiersz do PipelineBuffer obiektu.
Metoda publiczna DirectErrorRow(Int32, Int32, Int32) Wysyła PipelineBuffer wiersza do IDTSOutput100 którego IsErrorOut właściwość jest true.
Metoda publiczna DirectErrorRow(Int32, Int32, Int32, Int32) Wysyła PipelineBuffer wiersza do IDTSOutput100 którego IsErrorOut właściwość jest true.
Metoda publiczna DirectRow Wysyła wiersz z PipelineBuffer na określony IDTSOutput100.
Metoda publiczna Dispose() Zwalnia wszystkie zasoby używane przez PipelineBuffer.
Metoda chroniona Dispose(Boolean) Zwalnia niezarządzanych zasoby, które są używane przez PipelineBufferi opcjonalnie zwalnia zasobów zarządzanych.
Metoda publiczna Equals (Dziedziczony z Object).
Metoda chroniona Finalize Zwalnia wszystkie zasoby używane przez PipelineBuffer. (Zastępuje Object.Finalize()).
Metoda publiczna GetBlobData Pobiera tablicę bajtów z duży obiekt binarny (BLOB) przechowywane w PipelineBuffer kolumna.
Metoda publiczna GetBlobLength Pobiera liczbę bajtów zawartych w duży obiekt binarny (BLOB) PipelineBuffer kolumna.
Metoda publiczna GetBoolean Pobiera bool wartość przechowywaną w PipelineBuffer kolumna.
Metoda publiczna GetByte Pobiera bajt wartość przechowywaną w PipelineBuffer kolumna.
Metoda publiczna GetBytes Pobiera tablicę bajtów, przechowywane kolumna buforu.
Metoda publiczna GetColumnInfo Pobiera BufferColumn struktury dla PipelineBuffer kolumna.
Metoda publiczna GetDate Pobiera DateTime wartość przechowywaną w PipelineBuffer kolumna.
Metoda publiczna GetDateTime Pobiera DateTime wartość przechowywaną w PipelineBuffer kolumna.
Metoda publiczna GetDateTimeOffset Pobiera DateTimeOffset wartość przechowywaną w PipelineBuffer kolumna.
Metoda publiczna GetDecimal Pobiera dziesiętny wartość przechowywaną w PipelineBuffer kolumna.
Metoda publiczna GetDouble Pobiera podwójne w PipelineBuffer kolumna.
Metoda publiczna GetGuid Pobiera Guid wartość przechowywaną w PipelineBuffer kolumna.
Metoda publiczna GetHashCode (Dziedziczony z Object).
Metoda publiczna GetInt16 Pobiera krótki w PipelineBuffer kolumna.
Metoda publiczna GetInt32 Pobiera int w PipelineBuffer kolumna.
Metoda publiczna GetInt64 Pobiera długi w PipelineBuffer kolumna.
Metoda publiczna GetSByte Pobiera SByte wartość przechowywaną w PipelineBuffer kolumna.
Metoda publiczna GetSingle Pobiera pływaka, przechowywane w PipelineBuffer kolumna.
Metoda publiczna GetString Pobiera ciąg przechowywane kolumna buforu.
Metoda publiczna GetTime Pobiera TimeSpan wartość przechowywaną w PipelineBuffer kolumna.
Metoda publiczna GetType (Dziedziczony z Object).
Metoda publiczna GetUInt16 Pobiera ushort wartości przechowywane kolumna buforu.
Metoda publiczna GetUInt32 Pobiera UInt32 wartości przechowywane kolumna buforu.
Metoda publiczna GetUInt64 Pobiera ulong wartości przechowywane kolumna buforu.
Metoda publiczna IsNull Sprawdza, czy dane kolumna bufor jest null.
Metoda chroniona MemberwiseClone (Dziedziczony z Object).
Metoda publiczna NextRow Zaliczki PipelineBuffer do następnego wiersza.
Metoda publiczna RemoveRow Usuwa bieżący wiersz z PipelineBuffer.
Metoda publiczna ResetBlobData Usuwa zawartość określonej kolumna obiektu BLOB.
Metoda publiczna SetBoolean Przypisuje bool wartość PipelineBuffer kolumna.
Metoda publiczna SetByte Przypisuje bajt do PipelineBuffer kolumna.
Metoda publiczna SetBytes Przypisuje tablicę bajtów kolumna buforu.
Metoda publiczna SetDate Przypisuje DateTime wartość PipelineBuffer kolumna.
Metoda publiczna SetDateTime Przypisuje DateTime wartość PipelineBuffer kolumna.
Metoda publiczna SetDateTimeOffset Przypisuje DateTimeOffset wartość PipelineBuffer kolumna.
Metoda publiczna SetDecimal Przypisuje dziesiętny do kolumna buforu.
Metoda publiczna SetDouble Przypisuje podwójne do PipelineBuffer kolumna.
Metoda publiczna SetEndOfRowset Powiadamia PipelineBuffer składnik zostało zakończone, dodawanie wierszy do buforu.
Metoda publiczna SetErrorInfo Ustawia informacje o błędzie dla bieżącego PipelineBuffer wiersza.
Metoda publiczna SetGuid Przypisuje Guid do kolumna buforu.
Metoda publiczna SetInt16 Przypisuje całkowita 16-bitowych kolumna buforu.
Metoda publiczna SetInt32 Przypisuje całkowita 32-bitowych kolumna buforu.
Metoda publiczna SetInt64 Przypisuje całkowita 64-bitowych kolumna buforu.
Metoda publiczna SetNull Przypisuje nullodwołanie o wartości null (Nothing w języku Visual Basic) do kolumna buforu.
Metoda publiczna SetSByte Przypisuje całkowita 8-bitowa kolumna buforu.
Metoda publiczna SetSingle Przypisuje pływak kolumna buforu.
Metoda publiczna SetString Przypisuje kolumna buforu ciąg.
Metoda publiczna SetTime Przypisuje TimeSpan wartość PipelineBuffer kolumna.
Metoda publiczna SetUInt16 Przypisuje niepodpisane 16-bitowa liczba całkowita kolumna buforu.
Metoda publiczna SetUInt32 Przypisuje niepodpisane 32-bitowa liczba całkowita kolumna buforu.
Metoda publiczna SetUInt64 Przypisuje niepodpisane 64-bitowa liczba całkowita kolumna buforu.
Metoda publiczna ToString (Dziedziczony z Object).

Do góry

Uwagi

PipelineBuffer Jest w pamięci dwuwymiarową magazyn danych zawierających wiersze i kolumny.Jest tworzony przez zadanie przepływ danych i dostarczonych danych zarządzanych składników przepływu podczas wykonywania.Kolumny zawarte w buforze są oparte na kolumny w IDTSOutputColumnCollection100 kolekcji elementów wykresu.

Składniki źródła i z wyjść asynchronicznego otrzymywać buforu dla każdego z obiektów danych wyjściowych podłączonych do składnika niższego rzędu.Bufory są nazywane buforów wyjściowych i nie zawiera wierszy.Składnik, który odbiera bufor wyjściowy dodaje wiersze buforu i wywołania SetEndOfRowset metoda po zakończeniu.Ta metoda ustawia wartość EndOfRowset Właściwość true na końcowym buforu.zadanie przepływu danych Przewiduje, że bufor do następnego składnika na wykresie.

Składniki transformacji z synchronicznej wyjść i obiekt docelowy otrzymywać PipelineBuffer obiektów w ProcessInput metoda.PipelineBuffer Otrzymanych w tym metoda jest Input buforu i zawiera wiersze, które zostały dodane przez nadrzędny składników.Bufor jest ograniczony i nie można dodać lub usunąć wiersze z bufora.

PipelineBuffer Jest napisany kod zarządzany i obsługuje zarządzanie składnik przepływ danych deweloperów przez zestawiania danych między kodu zarządzanego i podstawowych IDTSBuffer100 obiektu COM.

Pełną listę Integration Services typów danych i odpowiadających im uzyskać i ustawić metody PipelineBuffer klasy za pomocą każdego typu danych, zobacz Praca z typami danych w przepływu danych.

Przykłady

W poniższym przykładzie składnik transformacja, który wykonuje iteracje wierszy i kolumn PipelineBuffer w 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.
         }
      }
      }
   }
}

W poniższym przykładzie składnik źródło, wiersze są dodawane do bufora wyjściowego 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();
      }
   }
}

Bezpieczeństwo wątków

Wszystkie publiczne statyczny (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Nie ma gwarancji, że elementy członkowskie wystąpień będą bezpieczne dla wątków.