Łączenie zadań programowo
ograniczenie pierwszeństwa reprezentowane w modelu obiektów przez PrecedenceConstraint klasy, ustala kolejność Executable uruchamiania obiektów w pakiet.ograniczenie pierwszeństwa umożliwia wykonanie zadania i pojemniki w pakiet ma być uzależnione od wyników wykonywania zadań poprzednich lub kontener.Pierwszeństwo ograniczenia są ustanowione między parami Executable obiektów, wywołując Add metoda PrecedenceConstraints kolekcja obiektu kontener.Po utworzeniu ograniczenie między dwoma obiektami wykonywalny zostanie zestaw Value zdefiniowana właściwość ustalenie kryteriów dla wykonywania drugi plik wykonywalny w ograniczenie.
Ograniczenia i wyrażenie można używać w jednym ograniczenie pierwszeństwa, w zależności od wartości określonej dla EvalOp właściwość, jak opisano w poniższej tabela:
Wartość właściwość EvalOp |
Opis |
---|---|
[ F:Microsoft.SqlServer.Dts.Runtime.DTSPrecedenceEvalOp.Constraint ] |
Określa wynik wykonanie czy ograniczonego kontener lub zadanie jest uruchamiane.Ustaw Value Właściwość PrecedenceConstraint na żądaną wartość z DTSExecResult wyliczania. |
[ F:Microsoft.SqlServer.Dts.Runtime.DTSPrecedenceEvalOp.Expression ] |
Określa wartość wyrażenie czy ograniczonego kontener lub zadanie jest uruchamiane.Ustaw Expression Właściwość PrecedenceConstraint. |
[ F:Microsoft.SqlServer.Dts.Runtime.DTSPrecedenceEvalOp.ExpressionAndConstraint ] |
Określa, że wynik ograniczenie musi wystąpić i wyrażenie musi być ograniczone kontener lub uruchomienie zadania.zestawzarówno Value i Expression Właściwości PrecedenceConstraint, i zestaw jego LogicalAnd Właściwość true. |
[ F:Microsoft.SqlServer.Dts.Runtime.DTSPrecedenceEvalOp.ExpressionOrConstraint ] |
Określa, że albo w wyniku ograniczenie musi wystąpić lub wyrażenie należy ocenić ograniczonego kontener lub uruchomienie zadania.zestawzarówno Value i Expression Właściwości PrecedenceConstraint, i zestaw jego LogicalAnd Właściwość false. |
Poniższy przykładowy kod ilustruje, dodając dwa zadania do pakiet.A PrecedenceConstraint utworzone między nimi, które zapobiega drugie zadanie uruchamiane aż do pierwszego kończy zadanie.
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SqlServer.Dts.Samples
{
class Program
{
static void Main(string[] args)
{
Package p = new Package();
// Add a File System task.
Executable eFileTask1 = p.Executables.Add("STOCK:FileSystemTask");
TaskHost thFileHost1 = eFileTask1 as TaskHost;
// Add a second File System task.
Executable eFileTask2 = p.Executables.Add("STOCK:FileSystemTask");
TaskHost thFileHost2 = eFileTask2 as TaskHost;
// Put a precedence constraint between the tasks.
// Set the constraint to specify that the second File System task cannot run
// until the first File System task finishes.
PrecedenceConstraint pcFileTasks =
p.PrecedenceConstraints.Add((Executable)thFileHost1, (Executable)thFileHost2);
pcFileTasks.Value = DTSExecResult.Completion;
}
}
}
Imports Microsoft.SqlServer.Dts.Runtime
Module Module1
Sub Main()
Dim p As Package = New Package()
' Add a File System task.
Dim eFileTask1 As Executable = p.Executables.Add("STOCK:FileSystemTask")
Dim thFileHost1 As TaskHost = CType(eFileTask1, TaskHost)
' Add a second File System task.
Dim eFileTask2 As Executable = p.Executables.Add("STOCK:FileSystemTask")
Dim thFileHost2 As TaskHost = CType(eFileTask2, TaskHost)
' Put a precedence constraint between the tasks.
' Set the constraint to specify that the second File System task cannot run
' until the first File System task finishes.
Dim pcFileTasks As PrecedenceConstraint = _
p.PrecedenceConstraints.Add(CType(thFileHost1, Executable), CType(thFileHost2, Executable))
pcFileTasks.Value = DTSExecResult.Completion
End Sub
End Module
|