Språk

Ansluta uppgifter programmatiskt

Gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory

En prejudikationsbegränsning, representerad i objektmodellen av PrecedenceConstraint klassen, fastställer ordningen i vilken Executable objekt körs i ett paket. Precedensbegränsningen tillåter att utförandet av containrar och uppgifter i ett paket är beroende av resultatet av exekveringen av en tidigare uppgift eller container. Prejuensbegränsningar etableras mellan par av Executable objekt genom att anropa Add metoden för samlingen PrecedenceConstraints på containerobjektet. Efter att du skapat en begränsning mellan två exekverbara objekt sätter du egenskapen Value för att fastställa kriterierna för att köra den andra exekverbara filen som definieras i begränsningen.

Du kan använda både en begränsning och ett uttryck i en och samma prejudikationsbegränsning, beroende på vilket värde du anger för egenskapen EvalOp , som beskrivs i följande tabell:

Värdet på EvalOp-egenskapen Description
Constraint Specificerar att exekveringsresultatet avgör om den begränsade containern eller uppgiften körs. Sätt egenskapen Value för till PrecedenceConstraint det önskade värdet från uppräkningen DTSExecResult .
Expression Specificerar att värdet på ett uttryck avgör om den begränsade behållaren eller uppgiften körs. Sätt egenskapen Expression för .PrecedenceConstraint
ExpressionAndConstraint Specificerar att begränsningsresultatet måste inträffa och uttrycket måste utvärdera för att den begränsade behållaren eller uppgiften ska köras. Sätt både och Value egenskaperna Expression för PrecedenceConstraint, och sätt dess LogicalAnd egenskap till sann.
ExpressionOrConstraint Specificerar att antingen måste begränsningsresultatet inträffa, eller uttrycket måste utvärdera, för att den begränsade behållaren eller uppgiften ska kunna köras. Sätt både och Value egenskaperna Expression hos PrecedenceConstraint, och sätt dess LogicalAnd egenskap till falsk.

Följande kodexempel visar att man lägger till två uppgifter i ett paket. En skapas mellan dem som förhindrar att den andra uppgiften körs tills den första uppgiften PrecedenceConstraint är klar.

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