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 Задача Bulk Insert служит примером для этого примера кода; На её месте можно создать любую задачу.
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 истинно, вы можете ввести nulltransaction параметр, чтобы указать, что контейнер поддерживает транзакции, но не участвует.