Поделиться через


PipelineBuffer.GetBlobData(Int32, Int32, Int32) Метод

Определение

Извлекает массив байтов из большого двоичного объекта (BLOB), хранящегося в столбце PipelineBuffer.

public:
 cli::array <System::Byte> ^ GetBlobData(int columnIndex, int offset, int count);
public byte[] GetBlobData (int columnIndex, int offset, int count);
member this.GetBlobData : int * int * int -> byte[]
Public Function GetBlobData (columnIndex As Integer, offset As Integer, count As Integer) As Byte()

Параметры

columnIndex
Int32

Индекс столбца, содержащего большой двоичный объект.

offset
Int32

Позиция в большом двоичном объекте, с которой начинается извлечение из него байтов.

count
Int32

Число байтов, которое необходимо извлечь из большого двоичного объекта.

Возвращаемое значение

Byte[]

Массив байтов в столбце PipelineBuffer.

Примеры

В следующем примере извлекается весь массив байтов из столбца PipelineBuffer .

public override void ProcessInput(int inputID, PipelineBuffer buffer)  
{  
   IDTSInput100 input = ComponentMetaData.InputCollection.GetObjectByID(inputID);  

   foreach (IDTSInputColumn100 col in input.InputColumnCollection)  
   {  
      int index = BufferManager.FindColumnByLineageID(input.Buffer, col.LineageID);  
      BufferColumn bc = buffer.GetColumnInfo(index);  

      if (bc.DataType == DataType.DT_IMAGE)  
      {  
         uint blobLength =  buffer.GetBlobLength(index);  
         byte [] blobBytes = buffer.GetBlobData(index, 0, (int)blobLength);  

         //TODO: Do something with the blob data.  

      }  
   }  
}  
Public  Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer As PipelineBuffer)   
 Dim input As IDTSInput100 = ComponentMetaData.InputCollection.GetObjectByID(inputID)   
 For Each col As IDTSInputColumn100 In input.InputColumnCollection   
   Dim index As Integer = BufferManager.FindColumnByLineageID(input.Buffer, col.LineageID)   
   Dim bc As BufferColumn = buffer.GetColumnInfo(index)   
   If bc.DataType = DataType.DT_IMAGE Then   
     Dim blobLength As System.UInt32 = buffer.GetBlobLength(index)   
     Dim blobBytes As Byte() = buffer.GetBlobData(index, 0, CType(blobLength, Integer))   
     'TODO: Do something with the blob data  
   End If   
 Next   
End Sub  

Комментарии

Этот метод работает со следующими типами данных служб Integration Services:

При извлечении данных из PipelineBuffer столбцов, содержащих БОЛЬШОЙ ДВОИЧНЫй объект, например DT_IMAGE, вы указываете начальное расположение в BLOB с параметром offset и число байтов, извлекаемых в параметре count .

Полный список типов данных служб Integration Services и соответствующих и методов класса, используемых с каждым типом, см. в разделе "Работа с типами данных" в Поток данных.PipelineBufferSetGet

Применяется к