次の方法で共有


PipelineBuffer.GetBlobData Method

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()
public byte[] GetBlobData (
    int columnIndex,
    int offset,
    int count
)
public:
array<unsigned char>^ GetBlobData (
    int columnIndex, 
    int offset, 
    int count
)
public byte[] GetBlobData (
    int columnIndex, 
    int offset, 
    int count
)
public function GetBlobData (
    columnIndex : int, 
    offset : int, 
    count : int
) : byte[]

パラメータ

  • columnIndex
    BLOB を含む列のインデックスです。
  • offset
    BLOB からのバイトの取得を開始する大きなバイナリ内のポイントです。
  • count
    BLOB から取得するバイト数です。

戻り値

PipelineBuffer 列のバイトの配列です。

解説

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

使用例

次の例では、PipelineBuffer 列からバイトの配列全体を取得します。

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

   foreach (IDTSInputColumn90 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 IDTSInput90 = ComponentMetaData.InputCollection.GetObjectByID(inputID) 
 For Each col As IDTSInputColumn90 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

スレッド セーフ

この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

PipelineBuffer Class
PipelineBuffer Members
Microsoft.SqlServer.Dts.Pipeline Namespace