PipelineBuffer.GetBlobData(Int32, Int32, Int32) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Recupera una matriz de bytes de un objeto binario grande (BLOB) almacenado en una columna de 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()
Parámetros
- columnIndex
- Int32
El índice de la columna que contiene el BLOB.
- offset
- Int32
El punto del BLOB en el que se va a empezar a recuperar bytes del BLOB.
- count
- Int32
El número de bytes que se va a recuperar del BLOB.
Devoluciones
La matriz de bytes de la columna de PipelineBuffer.
Ejemplos
En el ejemplo siguiente se recupera toda la matriz de bytes de una PipelineBuffer columna.
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
Comentarios
Este método funciona con los siguientes tipos de datos de Integration Services:
Al recuperar datos de PipelineBuffer columnas que contienen un BLOB, como DT_IMAGE, se especifica la ubicación inicial en el BLOB con el offset
parámetro y el número de bytes que se van a recuperar en el count
parámetro .
Para obtener una lista completa de los tipos de datos de Integration Services y los métodos y Set
correspondientes Get
de la PipelineBuffer clase que se van a usar con cada tipo, vea Trabajar con tipos de datos en la Data Flow.