PipelineBuffer.DirectRow(Int32) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
PipelineBuffer列が送信されるIDTSOutput100のIDです。
例
以下の例は、同じ排斥グループ内の2つの出力を含むコンポーネントを示しています。 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 メソッドを使うべきです。
同じ除外グループに2つの同期出力を持つコンポーネントが、 NextRow メソッドを用いて特定の出力に誘導せずに次の行にバッファを進める場合、その行は両方の出力に送られます。