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 Bytearray aus einem in einer PipelineBuffer-Spalte gespeicherten BLOB (Binary Large Object) ab.
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, in der das BLOB enthalten ist.
- offset
- Int32
Die Stelle im BLOB, an der mit dem Abrufen von Bytes begonnen wird.
- count
- Int32
Die Anzahl der Bytes, die aus dem BLOB abgerufen werden sollen.
Gibt zurück
Das Bytearray in der PipelineBuffer-Spalte.
Beispiele
Im folgenden Beispiel wird das gesamte Array von Bytes aus einer PipelineBuffer Spalte abgerufen.
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:
Wenn Sie Daten aus PipelineBuffer Spalten mit einem BLOB abrufen, z. B. ein DT_IMAGEBLOB, geben Sie den Startspeicherort im BLOB mit dem Parameter und der Anzahl der Bytes an, die offset
im count
Parameter abgerufen werden sollen.
Eine vollständige Liste der Integration Services-Datentypen und die entsprechenden Get
und Set
methoden der PipelineBuffer Klasse, die mit jedem Typ verwendet werden sollen, finden Sie unter Arbeiten mit Datentypen im Datenfluss.