PipelineBuffer.DirectRow(Int32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Передает строку из PipelineBuffer в указанный IDTSOutput100.
public:
void DirectRow(int outputID);
public void DirectRow (int outputID);
member this.DirectRow : int -> unit
Public Sub DirectRow (outputID As Integer)
Параметры
- outputID
- Int32
Идентификатор объекта IDTSOutput100, к которому направлена строка PipelineBuffer.
Примеры
В следующем примере показан компонент, содержащий два выходных данных в одной группе исключений. Во время ProcessInput отправки строк в один или другие выходные данные с помощью DirectRow метода.
public override void ProvideComponentProperties()
{
IDTSInput100 input = ComponentMetaData.InputCollection.New();
Input.Name = "DTSSampleInput";
IDTSOutput output = ComponentMetaData.OutputCollection.New();
output.ExclusionGroup = 1;
output.Name = "Output1";
output.SynchronousInputID = input.ID;
IDTSOutput output = ComponentMetaData.OutputCollection.New();
output.ExclusionGroup = 1;
output.Name = "Output2";
output.SynchronousInputID = input.ID;
}
public override void ProcessInput(int inputID, PipelineBuffer buffer)
{
IDTSInput100 input = ComponentMetaData.InputCollection.GetObjectByID(inputID);
IDTSOutput100 output1 = ComponentMetaData.OutputCollection[0];
IDTSOutput100 output2 = ComponentMetaData.OutputCollection[1];
while( buffer.NextRow())
{
// TODO: Insert if/then block here.
// If criteria is met, direct the buffer row to output1.
buffer.DirectRow(output1.ID);
// Otherwise, direct the row to output2.
buffer.DirectRow(output2.ID);
}
}
Public Overrides Sub ProvideComponentProperties()
Dim input As IDTSInput100 = ComponentMetaData.InputCollection.New
Input.Name = "DTSSampleInput"
Dim output As IDTSOutput = ComponentMetaData.OutputCollection.New
output.ExclusionGroup = 1
output.Name = "Output1"
output.SynchronousInputID = input.ID
Dim output As IDTSOutput = ComponentMetaData.OutputCollection.New
output.ExclusionGroup = 1
output.Name = "Output2"
output.SynchronousInputID = input.ID
End Sub
Public Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer As PipelineBuffer)
Dim input As IDTSInput100 = ComponentMetaData.InputCollection.GetObjectByID(inputID)
Dim output1 As IDTSOutput100 = ComponentMetaData.OutputCollection(0)
Dim output2 As IDTSOutput100 = ComponentMetaData.OutputCollection(1)
While buffer.NextRow
' TODO: Insert if/then block here.
' If criteria is met, direct the buffer row to output1.
buffer.DirectRow(output1.ID)
' Otherwise, direct the row to output2.
buffer.DirectRow(output2.ID)
End While
End Sub
Комментарии
Метод DirectRow вызывается компонентами, содержащими несколько выходных данных в одном и том же ExclusionGroup. Он используется для направления PipelineBuffer строки в указанные выходные данные — конкретные выходные данные в компоненте. Этот метод можно использовать для вывода ошибок и не ошибок, DirectErrorRow однако метод должен использоваться для отправки строк в выходные данные ошибок.
Если компонент с двумя синхронными выходными данными в одной группе исключений перемещает буфер к следующей строке с помощью NextRow метода без направления строки к определенному выходу, строка отправляется в оба выходных данных.