Executable.Execute Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет исполняемый файл.
public:
abstract 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 abstract 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);
abstract member 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 MustOverride 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
Дескриптор к типу транзакции, если вы участвуете в транзакции. Это значение может иметь значение NULL.
Возвращаемое значение
Возвращает значение из DTSExecResult перечисления, указывающее на успех, неудачу или другое состояние при запуске исполняемого файла.
Примеры
Следующий пример кода показывает, как запустить пакет, который наследует от Executable класса через класс 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 параметр, чтобы указать, что контейнер поддерживает транзакции, но не участвует.