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


Метод PipelineBuffer.GetBlobData

Retrieves an array of bytes from a binary large object (BLOB) stored in a PipelineBuffer column.

Пространство имен:  Microsoft.SqlServer.Dts.Pipeline
Сборка:  Microsoft.SqlServer.PipelineHost (в Microsoft.SqlServer.PipelineHost.dll)

Синтаксис

'Декларация
Public Function GetBlobData ( _
    columnIndex As Integer, _
    offset As Integer, _
    count As Integer _
) As Byte()
'Применение
Dim instance As PipelineBuffer 
Dim columnIndex As Integer 
Dim offset As Integer 
Dim count As Integer 
Dim returnValue As Byte()

returnValue = instance.GetBlobData(columnIndex, _
    offset, count)
public byte[] GetBlobData(
    int columnIndex,
    int offset,
    int count
)
public:
array<unsigned char>^ GetBlobData(
    int columnIndex, 
    int offset, 
    int count
)
member GetBlobData : 
        columnIndex:int * 
        offset:int * 
        count:int -> byte[] 
public function GetBlobData(
    columnIndex : int, 
    offset : int, 
    count : int
) : byte[]

Параметры

  • columnIndex
    Тип: System.Int32
    The index of the column containing the BLOB.
  • offset
    Тип: System.Int32
    The point in the BLOB to begin retrieving bytes from the BLOB.
  • count
    Тип: System.Int32
    The number of bytes to retrieve from the BLOB.

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

Тип: array<System.Byte[]
The array of bytes in the PipelineBuffer column.

Замечания

This method works with the following Службы Integration Services data types:

When retrieving data from PipelineBuffer columns containing a BLOB, such as a DT_IMAGE, you specify the starting location in the BLOB with the offset parameter and the number of bytes to retrieve in the count parameter.

For a complete list of Службы Integration Services data types and the corresponding Get and Set methods of the PipelineBuffer class to use with each type, see Работа с типами данных в потоке данных.

Примеры

The following example retrieves the entire array of bytes from a PipelineBuffer column.

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

См. также

Справочник

PipelineBuffer Класс

Пространство имен Microsoft.SqlServer.Dts.Pipeline