PipelineBuffer.GetBlobData(Int32, Int32, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft ein Array von Bytes aus einem binären großen Objekt (BLOB) ab, das in einer Spalte PipelineBuffer gespeichert ist.
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()
Parameter
- columnIndex
- Int32
Der Index der Spalte, die den BLOB enthält.
- offset
- Int32
Der Punkt im BLOB, um Bytes aus dem BLOB abzurufen.
- count
- Int32
Die Anzahl der Bytes, die aus dem BLOB abgerufen werden müssen.
Gibt zurück
Das Array der Bytes in der Spalte PipelineBuffer .
Beispiele
Das folgende Beispiel ruft das gesamte Byte-Array aus einer Spalte PipelineBuffer ab.
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
Hinweise
Diese Methode funktioniert mit den folgenden Integration Services-Datentypen:
Beim Abrufen von Daten aus PipelineBuffer Spalten, die einen BLOB enthalten, wie z DT_IMAGE. B. , geben Sie den Startort im BLOB mit dem Parameter offset und der Anzahl der zu abrufenden Bytes im Parameter count an.
Für eine vollständige Liste der Integration Services-Datentypen sowie der entsprechenden Get Methoden und Set Methoden der Klasse, die PipelineBuffer mit jedem Typ verwendet werden sollen, siehe Working with Data Types in the Datenfluss.