Поделиться через


Package.Execute Метод

Определение

Возвращает перечисление DTSExecResult, которое содержит данные об успешном или неуспешном выполнении пакета.

public:
 Microsoft::SqlServer::Dts::Runtime::DTSExecResult Execute();
public Microsoft.SqlServer.Dts.Runtime.DTSExecResult Execute ();
override this.Execute : unit -> Microsoft.SqlServer.Dts.Runtime.DTSExecResult
Public Function Execute () As DTSExecResult

Возвращаемое значение

DTSExecResult

Перечисление DTSExecResult, которое содержит данные об успешном или неуспешном выполнении пакета.

Примеры

В следующем примере кода создается пакет, задаются OfflineMode и InteractiveMode свойства перед добавлением задачи скрипта. Затем он запускает пакет с помощью Execute метода.

using System;  
using System.Collections.Generic;  
using System.Text;  
using Microsoft.SqlServer.Dts.Runtime;  
using Microsoft.SqlServer.Dts.Tasks.ScriptTask;  

namespace Package_API  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Package p = new Package();  
            p.InteractiveMode = true;  
            p.OfflineMode = true;  

            // Add a Script Task to the package.  
            TaskHost taskH = (TaskHost)p.Executables.Add(typeof(Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask).AssemblyQualifiedName);  
            // Run the package.  
            p.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.ScriptTask  

Namespace Package_API  
    Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim p As Package =  New Package()   
            p.InteractiveMode = True  
            p.OfflineMode = True  

            ' Add a Script Task to the package.  
            Dim taskH As TaskHost = CType(p.Executables.Add(Type.GetType(Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask).AssemblyQualifiedName), TaskHost)  
            ' Run the package.  
            p.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, можно передать nulltransaction параметр, чтобы указать, что контейнер поддерживает транзакции, но не участвует.

Применяется к