次の方法で共有


GetBlobData メソッド

PipelineBuffer 列に格納されているバイナリ ラージ オブジェクト (BLOB) からバイトの配列を取得します。

名前空間:  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[]

パラメーター

  • offset
    型: System. . :: . .Int32
    BLOB からのバイトの取得を開始する BLOB 内のポイント。

戻り値

型: array<System. . :: . .Byte> [] () [] []
PipelineBuffer 列のバイトの配列。

説明

このメソッドは、次の Integration Services データ型に有効です。

DT_IMAGE などの BLOB を含む PipelineBuffer 列からデータを取得する場合、BLOB 内での開始場所を offset パラメータで指定し、取得するバイト数を count パラメータで指定します。

Integration Services のデータ型と、それぞれのデータ型に対して使用する、PipelineBuffer クラスの対応する Get メソッドおよび Set メソッドの一覧については、「データ フロー内のデータ型の処理」を参照してください。

使用例

次の例では、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