Bagikan melalui


PipelineBuffer Kelas

Definisi

Menyediakan penyimpanan data dalam memori yang berisi baris dan kolom data.

public ref class PipelineBuffer : IDisposable
public class PipelineBuffer : IDisposable
type PipelineBuffer = class
    interface IDisposable
Public Class PipelineBuffer
Implements IDisposable
Warisan
PipelineBuffer
Penerapan

Contoh

Contoh berikut menunjukkan komponen transformasi yang melakukan iterasi baris dan kolom PipelineBuffer di 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.  
         }  
      }  
      }  
   }  
}  

Contoh berikut menunjukkan komponen sumber yang menambahkan baris ke buffer output di 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();  
      }  
   }  
}  

Keterangan

PipelineBuffer adalah penyimpanan data dua dimensi dalam memori yang berisi baris dan kolom. Ini dibuat oleh tugas aliran data dan disediakan untuk komponen aliran data terkelola selama eksekusi. Kolom yang terkandung dalam buffer didasarkan pada kolom dalam IDTSOutputColumnCollection100 koleksi komponen dalam grafik.

Komponen dan komponen sumber dengan output asinkron menerima buffer untuk setiap objek output yang terhubung ke komponen hilir. Buffer ini disebut sebagai buffer output dan tidak berisi baris. Komponen yang menerima buffer output menambahkan baris ke buffer dan memanggil SetEndOfRowset metode setelah selesai. Metode ini menetapkan nilai properti ke EndOfRowsettrue pada buffer akhir. Tugas aliran data kemudian menyediakan buffer tersebut ke komponen berikutnya dalam grafik.

Komponen transformasi dengan output sinkron dan komponen tujuan menerima PipelineBuffer objek dalam ProcessInput metode . Yang PipelineBuffer diterima dalam metode ini adalah Input buffer dan berisi baris yang ditambahkan ke oleh komponen upstram. Buffer ini dibatasi dan tidak dapat digunakan untuk menambah atau menghapus baris dari buffer.

PipelineBuffer ditulis dalam kode terkelola dan mendukung pengembang komponen aliran data terkelola dengan marshalling data antara kode terkelola dan objek COM yang mendasarIDTSBuffer100.

Untuk daftar lengkap jenis data Integration Services dan metode dan Set kelas PipelineBuffer yang sesuai Get untuk digunakan dengan setiap jenis data, lihat Bekerja dengan Jenis Data di Aliran Data.

Konstruktor

PipelineBuffer(IntPtr, PipelineBufferMode)

Membuat instans baru dari PipelineBuffer.

PipelineBuffer(UInt32, UInt32, UInt64, IntPtr*, DTP_BUFFCOL*, Boolean)

Menginisialisasi instans baru kelas PipelineBuffer.

Properti

ColumnCount

Mendapatkan jumlah kolom di PipelineBuffer.

ColumnInfo

Mendapatkan metadata baca-saja tentang kolom .

CurrentRow

Mendapatkan indeks baris saat ini di PipelineBuffer.

EndOfRowset

Mendapatkan nilai yang menunjukkan apakah saat ini PipelineBuffer adalah buffer akhir.

Item[Int32]

Nilai kolom yang ditentukan dalam baris saat ini

Mode

Mendapatkan nilai yang menunjukkan apakah adalah PipelineBufferIDTSInput100 buffer atau IDTSOutput100 buffer.

RowCount

Mendapatkan jumlah baris dalam PipelineBuffer objek .

RowSize

Mendapatkan ukuran baris dalam PipelineBuffer objek .

RowStarts

Mendapatkan titik awal baris.

Metode

AddBlobData(Int32, Byte[])

Menambahkan array byte ke PipelineBuffer kolom.

AddBlobData(Int32, Byte[], Int32)

Menambahkan array dari jumlah byte tertentu ke PipelineBuffer kolom.

AddRow()

Menambahkan baris ke PipelineBuffer objek .

DirectErrorRow(Int32, Int32, Int32)

PipelineBuffer Mengirim baris ke properti IDTSOutput100 yang IsErrorOut benar.

DirectErrorRow(Int32, Int32, Int32, Int32)

PipelineBuffer Mengirim baris ke properti IDTSOutput100 yang IsErrorOut benar.

DirectRow(Int32)

Mengirim baris dari PipelineBuffer ke yang ditentukan IDTSOutput100.

Dispose()

Merilis semua sumber daya yang PipelineBufferdigunakan oleh .

Dispose(Boolean)

Merilis sumber daya tidak terkelola yang digunakan oleh PipelineBuffer, dan secara opsional merilis sumber daya terkelola.

Finalize()

Merilis semua sumber daya yang PipelineBufferdigunakan oleh .

GetBlobData(Int32, Int32, Int32)

Mengambil array byte dari objek besar biner (BLOB) yang PipelineBuffer disimpan dalam kolom.

GetBlobLength(Int32)

Mendapatkan jumlah byte yang terkandung dalam kolom objek besar biner (BLOB). PipelineBuffer

GetBoolean(Int32)

Mendapatkan nilai bool yang disimpan di PipelineBuffer kolom.

GetByte(Int32)

Mendapatkan nilai byte yang disimpan di PipelineBuffer kolom .

GetBytes(Int32)

Mendapatkan array byte yang disimpan dalam kolom buffer.

GetColumnInfo(Int32)

BufferColumn Mengambil struktur untuk PipelineBuffer kolom.

GetDate(Int32)

Mendapatkan nilai DateTime yang disimpan di PipelineBuffer kolom.

GetDateTime(Int32)

Mendapatkan nilai DateTime yang disimpan di PipelineBuffer kolom.

GetDateTimeOffset(Int32)

Mendapatkan nilai DateTimeOffset yang disimpan di PipelineBuffer kolom.

GetDecimal(Int32)

Mendapatkan nilai desimal yang disimpan dalam PipelineBuffer kolom.

GetDouble(Int32)

Mendapatkan penyimpanan ganda di PipelineBuffer kolom.

GetGuid(Int32)

Mendapatkan nilai Guid yang disimpan di PipelineBuffer kolom .

GetInt16(Int32)

Mendapatkan pendek yang disimpan di PipelineBuffer kolom.

GetInt32(Int32)

Mendapatkan int yang disimpan dalam PipelineBuffer kolom.

GetInt64(Int32)

Mendapatkan panjang yang disimpan dalam PipelineBuffer kolom.

GetSByte(Int32)

Mendapatkan nilai SByte yang disimpan dalam PipelineBuffer kolom.

GetSingle(Int32)

Mendapatkan float yang disimpan dalam PipelineBuffer kolom.

GetString(Int32)

Mendapatkan string yang disimpan di kolom buffer.

GetTime(Int32)

Mendapatkan nilai TimeSpan yang disimpan di PipelineBuffer kolom .

GetUInt16(Int32)

Mendapatkan nilai ushort yang disimpan di kolom buffer.

GetUInt32(Int32)

Mendapatkan nilai UInt32 yang disimpan di kolom buffer.

GetUInt64(Int32)

Mendapatkan nilai ulong yang disimpan di kolom buffer.

IsNull(Int32)

Memeriksa untuk melihat apakah data dalam kolom buffer null.

NextRow()

Memajukan PipelineBuffer ke baris berikutnya.

RemoveRow()

Menghapus baris saat ini dari PipelineBuffer.

ResetBlobData(Int32)

Menghapus konten kolom BLOB yang ditentukan.

SetBoolean(Int32, Boolean)

Menetapkan nilai bool ke PipelineBuffer kolom.

SetByte(Int32, Byte)

Menetapkan byte ke PipelineBuffer kolom.

SetBytes(Int32, Byte[])

Menetapkan array byte ke kolom buffer.

SetDate(Int32, DateTime)

Menetapkan nilai DateTime ke PipelineBuffer kolom.

SetDateTime(Int32, DateTime)

Menetapkan nilai DateTime ke PipelineBuffer kolom.

SetDateTimeOffset(Int32, DateTimeOffset)

Menetapkan nilai DateTimeOffset ke PipelineBuffer kolom.

SetDecimal(Int32, Decimal)

Menetapkan desimal ke kolom buffer.

SetDouble(Int32, Double)

Menetapkan ganda ke PipelineBuffer kolom.

SetEndOfRowset()

Memberi tahu PipelineBuffer bahwa komponen telah selesai menambahkan baris ke buffer.

SetErrorInfo(Int32, Int32, Int32)

Menyetel informasi kesalahan untuk baris saat ini PipelineBuffer .

SetGuid(Int32, Guid)

Menetapkan Guid ke kolom buffer.

SetInt16(Int32, Int16)

Menetapkan bilangan bulat bertanda 16-bit ke kolom buffer.

SetInt32(Int32, Int32)

Menetapkan bilangan bulat bertanda 32-bit ke kolom buffer.

SetInt64(Int32, Int64)

Menetapkan bilangan bulat bertanda 64-bit ke kolom buffer.

SetNull(Int32)

Menetapkan null ke kolom buffer.

SetSByte(Int32, SByte)

Menetapkan bilangan bulat 8-bit yang ditandatangani ke kolom buffer.

SetSingle(Int32, Single)

Menetapkan float ke kolom buffer.

SetString(Int32, String)

Menetapkan string ke kolom buffer.

SetTime(Int32, TimeSpan)

Menetapkan nilai TimeSpan ke PipelineBuffer kolom.

SetUInt16(Int32, UInt16)

Menetapkan bilangan bulat 16-bit yang tidak ditandatangani ke kolom buffer.

SetUInt32(Int32, UInt32)

Menetapkan bilangan buffer 32-bit yang tidak ditandatangani ke kolom buffer.

SetUInt64(Int32, UInt64)

Menetapkan bilangan bulat 64-bit yang tidak ditandatangani ke kolom buffer.

Berlaku untuk