Metoda PipelineBuffer.GetBlobData
Pobiera tablicę bajtów z duży obiekt binarny (BLOB) przechowywane w PipelineBuffer kolumna.
Przestrzeń nazw: Microsoft.SqlServer.Dts.Pipeline
Zestaw: Microsoft.SqlServer.PipelineHost (w Microsoft.SqlServer.PipelineHost.dll)
Składnia
'Deklaracja
Public Function GetBlobData ( _
columnIndex As Integer, _
offset As Integer, _
count As Integer _
) As Byte()
'Użycie
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[]
Parametry
- columnIndex
Typ: System.Int32
Indeks kolumna zawierającą obiektu BLOB.
- offset
Typ: System.Int32
Punkt w obiekcie BLOB, aby rozpocząć pobieranie bajtów z obiektu BLOB.
- count
Typ: System.Int32
Liczba bajtów, aby pobrać obiektu BLOB.
Wartość zwracana
Typ: array<System.Byte[]
Tablica bajtów w PipelineBuffer kolumna.
Uwagi
Metoda ta działa z następującymi Integration Services typy danych:
Podczas pobierania danych z PipelineBuffer kolumny zawierającej obiekt BLOB, takich jak DT_IMAGE, określ lokalizację początkową w obiekcie BLOB z offset parametr i liczba bajtów przeznaczonych do pobrania w count parametru.
Pełną listę Integration Services typów danych i odpowiadających im uzyskać i ustawić metody PipelineBuffer klasy za pomocą każdego typu, zobacz Praca z typami danych w przepływu danych.
Przykłady
Poniższy przykład pobiera całą tablicę bajtów z PipelineBuffer kolumna.
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