DTSPrecedenceEvalOp Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает операции оценки, используемые в ограничении приоритета.
public enum class DTSPrecedenceEvalOp
public enum DTSPrecedenceEvalOp
type DTSPrecedenceEvalOp =
Public Enum DTSPrecedenceEvalOp
- Наследование
-
DTSPrecedenceEvalOp
Поля
| Имя | Значение | Описание |
|---|---|---|
| Expression | 1 | Указывает, что значение выражения определяет, будет ли выполнен ограниченный контейнер или задача. Установим Expression свойство PrecedenceConstraint. |
| Constraint | 2 | Указывает, что результат выполнения определяет, будет ли выполнен ограниченный контейнер или задача. Установите Value свойство PrecedenceConstraint , что соответствует желаемому значению из DTSExecResult перечисления. |
| ExpressionAndConstraint | 3 | Указывает, что результат ограничения должен произойти, а выражение должно быть оценено для выполнения контейнера или задачи с ограничениями. Установите свойства Value и Expression свойства , и установите PrecedenceConstraintего LogicalAnd свойство истинным. |
| ExpressionOrConstraint | 4 | Указывает, что либо результат ограничения, либо выражение должно быть оценено, чтобы контейнер с ограничением или задача выполнялись. Установим свойства Value и Expression свойства PrecedenceConstraint, и установим его LogicalAnd свойство в false. |
Примеры
Следующий пример кода создаёт три задачи и устанавливает между ними ограничения по приоритету. Используя коллекцию PrecedenceConstraints , она итерирует ограничения в пакете, отображая информацию о каждом ограничении, включая EvalOp свойство, содержащее одно из значений из этого перечисления. Пример кода затем меняет значение EvalOp использования этого перечисления.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask;
using Microsoft.SqlServer.Dts.Tasks.FileSystemTask;
namespace PrecedenceConst
{
class Program
{
static void Main(string[] args)
{
Package pkg = new Package();
// Add a File System task.
Executable eFileTask1 = pkg.Executables.Add("STOCK:FileSystemTask");
TaskHost thFileTask1 = eFileTask1 as TaskHost;
// Add a second File System task.
Executable eFileTask2 = pkg.Executables.Add("STOCK:FileSystemTask");
TaskHost thFileTask2 = eFileTask2 as TaskHost;
// Add a Bulk Insert task.
Executable eBulkInsert = pkg.Executables.Add("STOCK:BulkInsertTask");
TaskHost thBulkInsert = eBulkInsert as TaskHost;
// Add a precedence contraint between eFileTask1 and eFileTask2.
// Set the constraint to be that eFileTask2 cannot run
// until eFileTask1 completes.
PrecedenceConstraint pcFileTasks = pkg.PrecedenceConstraints.Add(eFileTask1, eFileTask2);
pcFileTasks.Name = "constraint between File System Tasks";
// Add another precedence contraint. Add it between eFileTask2 and BulkInsert.
// Again, set the constraint to be that BulkInsert cannot run
// until eFileTask2 completes.
PrecedenceConstraint pcFiletoBulk = pkg.PrecedenceConstraints.Add(eFileTask2, eBulkInsert);
pcFileTasks.Name = "constraint between File System and Bulk Insert Tasks";
// Obtain the precedence constraint collection.
PrecedenceConstraints pConsts = pkg.PrecedenceConstraints;
Boolean containsConstraint = pkg.PrecedenceConstraints.Contains("constraint between File System and Bulk Insert Tasks");
Console.WriteLine("Contains the constraint between File System and Bulk Insert Tasks? {0}", containsConstraint);
foreach (PrecedenceConstraint pc in pConsts)
{
Console.WriteLine("Constrained container {0}", pc.ConstrainedExecutable);
Console.WriteLine("Evaluation operation {0}", pc.EvalOp);
Console.WriteLine("Evaluates true {0}", pc.EvaluatesTrue);
Console.WriteLine("ID {0}", pc.ID);
Console.WriteLine("LogicalAnd {0}", pc.LogicalAnd);
Console.WriteLine("Precedence Executable {0}", pc.PrecedenceExecutable);
Console.WriteLine("-----------------------------------");
}
// Set the EvalOp of the first constraint using the DtsPrecedenceEvalOp enumerator.
PrecedenceConstraint firstPC = pConsts[0];
firstPC.EvalOp = DTSPrecedenceEvalOp.Expression;
Console.WriteLine("Evaluation operation after {0}", firstPC.EvalOp);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask
Imports Microsoft.SqlServer.Dts.Tasks.FileSystemTask
Namespace PrecedenceConst
Class Program
Shared Sub Main(ByVal args() As String)
Dim pkg As Package = New Package()
' Add a File System task.
Dim eFileTask1 As Executable = pkg.Executables.Add("STOCK:FileSystemTask")
Dim thFileTask1 As TaskHost = eFileTask1 as TaskHost
' Add a second File System task.
Dim eFileTask2 As Executable = pkg.Executables.Add("STOCK:FileSystemTask")
Dim thFileTask2 As TaskHost = eFileTask2 as TaskHost
' Add a Bulk Insert task.
Dim eBulkInsert As Executable = pkg.Executables.Add("STOCK:BulkInsertTask")
Dim thBulkInsert As TaskHost = eBulkInsert as TaskHost
' Add a precedence contraint between eFileTask1 and eFileTask2.
' Set the constraint to be that eFileTask2 cannot run
' until eFileTask1 completes.
Dim pcFileTasks As PrecedenceConstraint = pkg.PrecedenceConstraints.Add(eFileTask1,eFileTask2)
pcFileTasks.Name = "constraint between File System Tasks"
' Add another precedence contraint. Add it between eFileTask2 and BulkInsert.
' Again, set the constraint to be that BulkInsert cannot run
' until eFileTask2 completes.
Dim pcFiletoBulk As PrecedenceConstraint = pkg.PrecedenceConstraints.Add(eFileTask2,eBulkInsert)
pcFileTasks.Name = "constraint between File System and Bulk Insert Tasks"
' Obtain the precedence constraint collection.
Dim pConsts As PrecedenceConstraints = pkg.PrecedenceConstraints
Dim containsConstraint As Boolean = pkg.PrecedenceConstraints.Contains("constraint between File System and Bulk Insert Tasks")
Console.WriteLine("Contains the constraint between File System and Bulk Insert Tasks? {0}", containsConstraint)
Dim pc As PrecedenceConstraint
For Each pc In pConsts
Console.WriteLine("Constrained container {0}", pc.ConstrainedExecutable)
Console.WriteLine("Evaluation operation {0}", pc.EvalOp)
Console.WriteLine("Evaluates true {0}", pc.EvaluatesTrue)
Console.WriteLine("ID {0}", pc.ID)
Console.WriteLine("LogicalAnd {0}", pc.LogicalAnd)
Console.WriteLine("Precedence Executable {0}", pc.PrecedenceExecutable)
Console.WriteLine("-----------------------------------")
Next
' Set the EvalOp of the first constraint using the DtsPrecedenceEvalOp enumerator.
Dim firstPC As PrecedenceConstraint = pConsts(0)
firstPC.EvalOp = DTSPrecedenceEvalOp.Expression
Console.WriteLine("Evaluation operation after {0}", firstPC.EvalOp)
End Sub
End Class
End Namespace
Пример вывода:
Contains the constraint between File System and Bulk Insert Tasks? True
Constrained container Microsoft.SqlServer.Dts.Runtime.TaskHost
Evaluation operation Constraint
Evaluates true True
ID {0EDDD5B8-7135-4A73-B240-EDF54C0E66AC}
LogicalAnd True
Precedence Executable Microsoft.SqlServer.Dts.Runtime.TaskHost
-----------------------------------
Constrained container Microsoft.SqlServer.Dts.Runtime.TaskHost
Evaluation operation Constraint
Evaluates true True
ID {80584B94-A3D0-4E08-B9C1-8CCC7BD7D086}
LogicalAnd True
Precedence Executable Microsoft.SqlServer.Dts.Runtime.TaskHost
-----------------------------------
Evaluation operation after Expression
Комментарии
Элемент приоритета — это задача или контейнер, выражение или результат выполнения (завершение, успех или неудача) определяет, будет ли выполнена следующая задача или контейнер, ограниченный элемент. Значение по умолчанию — Constraint. Дополнительные сведения см. в статье Precedence Constraints.