Udostępnij za pośrednictwem


Package.Execute Method

Definition

Returns a DTSExecResult enumeration that contains information about the success or failure of the package execution.

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

Returns

A DTSExecResult enumeration that contains information about the success or failure of the package execution.

Examples

The following code example creates a package, sets the OfflineMode and InteractiveMode properties before adding a script task. It then runs the package using the Execute method.

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  

Remarks

The Execute method is inherited by task hosts and other objects from the Executable abstract class, through the DtsContainer class, and allows the inheriting objects to be run by the runtime engine. The Execute method inherited by the individual objects is not commonly used in code, and it is recommended that you call the Execute method if you need to run any of the tasks or containers in the package. However, the Execute method is available on individual objects should you find a unique circumstance where it is needed.

The main use of the Execute method is for it to be inherited and overridden when you create a custom task. For more information about how to override the Execute method, see Coding a Custom Task.

The Execute method calls the Validate method implicitly before the package runs. All tasks in the package are reviewed for appropriate settings during validation, and all objects in the package are reviewed, including the package, containers, and other components in the package.

If there are no problems encountered in the validation phase that would cause the package to fail, the package object proceeds to call the Execute method for each task and object in the package.

Pass null for the transaction parameter when the TransactionOption property is false. If the TransactionOption property is true, you can pass null in the transaction parameter to indicate that the container supports transactions but does not participate.

Applies to