다음을 통해 공유


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 네임스페이스