PipelineBuffer.GetBlobData(Int32, Int32, Int32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Извлекает массив байтов из большого двоичного объекта (BLOB), хранящегося в столбце PipelineBuffer.
public:
cli::array <System::Byte> ^ GetBlobData(int columnIndex, int offset, int count);
public byte[] GetBlobData (int columnIndex, int offset, int count);
member this.GetBlobData : int * int * int -> byte[]
Public Function GetBlobData (columnIndex As Integer, offset As Integer, count As Integer) As Byte()
Параметры
- columnIndex
- Int32
Индекс столбца, содержащего большой двоичный объект.
- offset
- Int32
Позиция в большом двоичном объекте, с которой начинается извлечение из него байтов.
- count
- Int32
Число байтов, которое необходимо извлечь из большого двоичного объекта.
Возвращаемое значение
Массив байтов в столбце PipelineBuffer.
Примеры
В следующем примере извлекается весь массив байтов из столбца 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
Комментарии
Этот метод работает со следующими типами данных служб Integration Services:
При извлечении данных из PipelineBuffer столбцов, содержащих БОЛЬШОЙ ДВОИЧНЫй объект, например DT_IMAGE, вы указываете начальное расположение в BLOB с параметром offset
и число байтов, извлекаемых в параметре count
.
Полный список типов данных служб Integration Services и соответствующих и методов класса, используемых с каждым типом, см. в разделе "Работа с типами данных" в Поток данных.PipelineBufferSet
Get