Task.Execute Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет задачу.
public:
virtual Microsoft::SqlServer::Dts::Runtime::DTSExecResult Execute(Microsoft::SqlServer::Dts::Runtime::Connections ^ connections, Microsoft::SqlServer::Dts::Runtime::VariableDispenser ^ variableDispenser, Microsoft::SqlServer::Dts::Runtime::IDTSComponentEvents ^ componentEvents, Microsoft::SqlServer::Dts::Runtime::IDTSLogging ^ log, System::Object ^ transaction);
public virtual Microsoft.SqlServer.Dts.Runtime.DTSExecResult Execute (Microsoft.SqlServer.Dts.Runtime.Connections connections, Microsoft.SqlServer.Dts.Runtime.VariableDispenser variableDispenser, Microsoft.SqlServer.Dts.Runtime.IDTSComponentEvents componentEvents, Microsoft.SqlServer.Dts.Runtime.IDTSLogging log, object transaction);
abstract member Execute : Microsoft.SqlServer.Dts.Runtime.Connections * Microsoft.SqlServer.Dts.Runtime.VariableDispenser * Microsoft.SqlServer.Dts.Runtime.IDTSComponentEvents * Microsoft.SqlServer.Dts.Runtime.IDTSLogging * obj -> Microsoft.SqlServer.Dts.Runtime.DTSExecResult
override this.Execute : Microsoft.SqlServer.Dts.Runtime.Connections * Microsoft.SqlServer.Dts.Runtime.VariableDispenser * Microsoft.SqlServer.Dts.Runtime.IDTSComponentEvents * Microsoft.SqlServer.Dts.Runtime.IDTSLogging * obj -> Microsoft.SqlServer.Dts.Runtime.DTSExecResult
Public Overridable Function Execute (connections As Connections, variableDispenser As VariableDispenser, componentEvents As IDTSComponentEvents, log As IDTSLogging, transaction As Object) As DTSExecResult
Параметры
- connections
- Connections
Коллекция соединений, используемых задачей.
- variableDispenser
- VariableDispenser
Объект VariableDispenser для блокировки переменных.
- componentEvents
- IDTSComponentEvents
Объект, реализующий интерфейс IDTSComponentEvents.
- log
- IDTSLogging
Объект, реализующий интерфейс IDTSLogging.
- transaction
- Object
Объект транзакции, частью которого является контейнер. Это значение может быть равно NULL.
Возвращаемое значение
Значение из перечисления DTSExecResult.
Примеры
В следующем примере кода показано, как запустить пакет, содержащий наследующий Task,BulkInsertTask Задача "Массовая вставка" является примером для этого примера кода; Любую задачу можно создать на месте.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask
namespace Microsoft.SqlServer.SSIS.Samples
{
class Program
{
static void Main(string[] args)
{
Package p = new Package();
p.InteractiveMode = true;
p.OfflineMode = true;
Executable exec1 = pkg.Executables.Add("STOCK:BulkInsertTask");
TaskHost th = exec1 as TaskHost;
// Set the CheckConstraints and DataFileType properties.
th.Properties["CheckConstraints"].SetValue(th, true);
th.Properties["DataFileType"].SetValue(th, DTSBulkInsert_DataFileType.DTSBulkInsert_DataFileType_Native);
// Run the package that contains the task.
pkg.Execute();
// Review the results of the run.
if (taskH.ExecutionResult == DTSExecResult.Failure || taskH.ExecutionStatus == DTSExecStatus.Abend)
Console.WriteLine("Task failed or abended");
else
Console.WriteLine("Task ran successfully");
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask
Namespace Microsoft.SqlServer.SSIS.Samples
Class Program
Shared Sub Main(ByVal args() As String)
Dim p As Package = New Package()
p.InteractiveMode = True
p.OfflineMode = True
Dim exec1 As Executable = pkg.Executables.Add("STOCK:BulkInsertTask")
Dim th As TaskHost = exec1 as TaskHost
' Set the CheckConstraints and DataFileType properties.
th.Properties("CheckConstraints").SetValue(th, True)
th.Properties("DataFileType").SetValue(th, DTSBulkInsert_DataFileType.DTSBulkInsert_DataFileType_Native)
' Run the package that contains the task.
pkg.Execute()
' Review the results of the run.
If taskH.ExecutionResult = DTSExecResult.Failure Or taskH.ExecutionStatus = DTSExecStatus.Abend Then
Console.WriteLine("Task failed or abended")
Else
Console.WriteLine("Task ran successfully")
End If
End Sub
End Class
End Namespace
Комментарии
Метод Execute наследуется узлами задач и другими объектами из Executable абстрактного класса через DtsContainer класс и позволяет запускать наследуемые объекты подсистемой среды выполнения. Метод Execute
, наследуемый отдельными объектами, часто не используется в коде, и рекомендуется вызывать Execute метод, если необходимо выполнить какие-либо задачи или контейнеры в пакете. Однако метод Execute
доступен для отдельных объектов, если он необходим.
Основное использование Execute
метода — наследование и переопределение при создании пользовательской задачи. Дополнительные сведения о переопределении метода см. в Execute
разделе "Написание пользовательской задачи".
Метод Execute
вызывает Validate
метод неявно перед выполнением пакета. Все задачи в пакете проверяются на наличие соответствующих параметров во время проверки, а все объекты в пакете проверяются, включая пакет, контейнеры и другие компоненты в пакете.
Если на этапе проверки нет проблем, которые привели бы к сбою пакета, объект пакета продолжает вызывать Execute
метод для каждой задачи и объекта в пакете.
Передайте null
параметр, transaction
если TransactionOption свойство имеет значение false
. TransactionOption Если свойство имеет значение true, можно передать null
transaction
параметр, чтобы указать, что контейнер поддерживает транзакции, но не участвует.