Łączenie zadania programowe
ograniczenie pierwszeństwa reprezentowane w modelu obiektów przez PrecedenceConstraint Klasa, ustala kolejność, w którym Executable obiekty są uruchamiane w pakiet. ograniczenie pierwszeństwa umożliwia wykonanie pojemników i zadań w pakiet jest zależna od wyniku realizacji poprzedniego zadania lub kontener.Pierwszeństwo ograniczenia są ustanowione między parami Executable obiekty, wywołując Add(Executable, Executable) Metoda PrecedenceConstraints Kolekcja obiektu kontener. Po utworzeniu ograniczenie między dwoma obiektami pliku wykonywalnego, zestaw Value() Właściwość, aby określić kryteria wykonywanie drugi plik wykonywalny określony w ograniczenie.
Można użyć zarówno przez ograniczenie typu jak i wyrażenie w ograniczeniu pojedynczego pierwszeństwo, w zależności od wartości określone dla EvalOp() właściwość, jak to opisano w poniższej tabela:
Wartość właściwość EvalOp |
Description |
---|---|
Constraint() |
Określa wynik wykonanie czy ograniczonego kontener lub zadanie jest uruchamiane.zestaw Value() Właściwość PrecedenceConstraint do żądanej wartości z DTSExecResult Wyliczanie. |
Expression() |
Określa, że wartość wyrażenie Określa, czy ograniczonego kontener lub zadanie jest uruchamiane.zestaw Expression() Właściwość PrecedenceConstraint. |
ExpressionAndConstraint() |
Określa, że wynik ograniczenie musi wystąpić i wyrażenie musi dawać w wyniku dla kontener ograniczonego lub uruchomienie zadania.Wartość Value() oraz Expression() właściwości PrecedenceConstrainti ustawić jego LogicalAnd() Właściwość true. |
ExpressionOrConstraint() |
Określa, że albo musi wystąpić w wyniku ograniczenie lub wyrażenie powinny być ograniczone kontener lub uruchomienie zadania.Wartość Value() oraz Expression() właściwości PrecedenceConstrainti ustawić jego LogicalAnd() Właściwość false. |
Poniższy przykład kodu ilustruje dodanie dwóch zadań do pakiet.A PrecedenceConstraint utworzono między nimi zapobiega przed zakończeniem pierwszego zadania drugie 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
|