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