DtsContainer.Execute Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Запускает приложение, контейнер или пакет как часть рабочего процесса пакета.
public:
override Microsoft::SqlServer::Dts::Runtime::DTSExecResult Execute(Microsoft::SqlServer::Dts::Runtime::Connections ^ connections, Microsoft::SqlServer::Dts::Runtime::Variables ^ variables, Microsoft::SqlServer::Dts::Runtime::IDTSEvents ^ events, Microsoft::SqlServer::Dts::Runtime::IDTSLogging ^ log, System::Object ^ transaction);
public override Microsoft.SqlServer.Dts.Runtime.DTSExecResult Execute(Microsoft.SqlServer.Dts.Runtime.Connections connections, Microsoft.SqlServer.Dts.Runtime.Variables variables, Microsoft.SqlServer.Dts.Runtime.IDTSEvents events, Microsoft.SqlServer.Dts.Runtime.IDTSLogging log, object transaction);
override this.Execute : Microsoft.SqlServer.Dts.Runtime.Connections * Microsoft.SqlServer.Dts.Runtime.Variables * Microsoft.SqlServer.Dts.Runtime.IDTSEvents * Microsoft.SqlServer.Dts.Runtime.IDTSLogging * obj -> Microsoft.SqlServer.Dts.Runtime.DTSExecResult
Public Overrides Function Execute (connections As Connections, variables As Variables, events As IDTSEvents, log As IDTSLogging, transaction As Object) As DTSExecResult
Параметры
- connections
- Connections
Connections Сбор для контейнера.
- events
- IDTSEvents
Интерфейс для передачи IDTSEvents событий.
- log
- IDTSLogging
Интерфейс IDTSLogging.
- transaction
- Object
Объект транзакции, частью которого является контейнер, зависит от значения, найдённого в объекте TransactionOption . Это значение может иметь значение NULL.
Возвращаемое значение
Перечисление DTSExecResult , указывающее результат казни.
Примеры
Следующий пример кода показывает, как запустить Package, который нанаследует из EventsProvider, который, в свою очередь, наследует из DtsContainer. В упаковке содержится 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, см. раздел Coding a Custom Task.
Execute Метод вызывает Validate метод неявно перед запуском пакета. Все задачи в пакете проверяются на наличие соответствующих настроек во время валидации, и все объекты пакета, включая пакет, контейнеры и другие компоненты пакета.
Если на этапе валидации не возникает проблем, которые могли бы привести к отказу пакета, объект пакета Execute вызывает метод для каждой задачи и объекта в пакете.
Пропустите null параметр transaction , когда свойство TransactionOption — false. Если TransactionOption свойство истинное, вы можете ввести nulltransaction параметр, указывающий, что контейнер поддерживает транзакции, но не будет участвовать.