PipelineBuffer.GetBlobData(Int32, Int32, Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Recupera un array di byte da un oggetto binario grande (BLOB) memorizzato in una PipelineBuffer colonna.
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()
Parametri
- columnIndex
- Int32
L'indice della colonna contenente il BLOB.
- offset
- Int32
Il punto nel BLOB è iniziare a recuperare byte dal BLOB.
- count
- Int32
Il numero di byte da recuperare dal BLOB.
Valori restituiti
L'array di byte nella PipelineBuffer colonna.
Esempio
Il seguente esempio recupera l'intero array di byte da una PipelineBuffer colonna.
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
Commenti
Questo metodo funziona con i seguenti tipi di dati di Integration Services:
Quando si recuperano dati da PipelineBuffer colonne contenenti un BLOB, come un DT_IMAGE, si specifica la posizione di partenza nel BLOB con il offset parametro e il numero di byte da recuperare nel count parametro.
Per un elenco completo dei tipi di dati di Integration Services e i corrispondenti metodi della PipelineBuffer classe da utilizzare con ciascun tipo, vedi Lavorare con i tipi di dati nel Flusso di datiSet.Get