DirectRow メソッド
PipelineBuffer から指定された IDTSOutput100 に行を送信します。
名前空間: Microsoft.SqlServer.Dts.Pipeline
アセンブリ: Microsoft.SqlServer.PipelineHost (Microsoft.SqlServer.PipelineHost.dll)
構文
'宣言
Public Sub DirectRow ( _
outputID As Integer _
)
'使用
Dim instance As PipelineBuffer
Dim outputID As Integer
instance.DirectRow(outputID)
public void DirectRow(
int outputID
)
public:
void DirectRow(
int outputID
)
member DirectRow :
outputID:int -> unit
public function DirectRow(
outputID : int
)
パラメーター
- outputID
型: System. . :: . .Int32
PipelineBuffer 行が送信される IDTSOutput100 の ID です。
説明
DirectRow メソッドは、同じ ExclusionGroup に複数の出力を含むコンポーネントにより呼び出されます。これを使用して、PipelineBuffer 行を指定した出力 (コンポーネント内の特定の出力) に出力します。このメソッドはエラー出力にもエラー以外の出力にも使用できますが、DirectErrorRow メソッドは、行をエラー出力に送信するために使用されます。
同じ除外グループに 2 つの同期出力を持つコンポーネントが、行を特定の出力に出力させず、NextRow メソッドを使用してバッファを次の行に進めると、行は両方の出力に送信されます。
使用例
次の例は、同じ除外グループに 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