PipelineBuffer.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[]
パラメーター
- columnIndex
型: System.Int32
BLOB を含む列のインデックス。
- offset
型: System.Int32
BLOB からのバイトの取得を開始する BLOB 内のポイント。
- count
型: System.Int32
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