DtsContainer.Execute Method (Connections, Variables, IDTSEvents, IDTSLogging, Object)


Runs the application, container, or package as part of a package workflow.

Namespace:   Microsoft.SqlServer.Dts.Runtime
Assembly:  Microsoft.SqlServer.ManagedDTS (in Microsoft.SqlServer.ManagedDTS.dll)

public override DTSExecResult Execute(
	Connections connections,
	Variables variables,
	IDTSEvents events,
	IDTSLogging log,
	object transaction


Type: Microsoft.SqlServer.Dts.Runtime.Connections

The Connections collection for the container.

Type: Microsoft.SqlServer.Dts.Runtime.Variables

The Variables collection for the container.

Type: Microsoft.SqlServer.Dts.Runtime.IDTSEvents

An IDTSEvents interface to raise events.

Type: Microsoft.SqlServer.Dts.Runtime.IDTSLogging

An IDTSLogging interface.

Type: System.Object

The transaction object that the container is a part of, depending on the value found in the TransactionOption property. This value can be null.

Return Value

Type: Microsoft.SqlServer.Dts.Runtime.DTSExecResult

A DTSExecResult enumeration that indicates the outcome of the execution.

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 support transactions but is not going to participate.

The following code example shows how to run a Package which inherits from EventsProvider, which in turn, inherits from DtsContainer. The package contains a BulkInsertTask. The Bulk Insert task is an example for this code sample; any task can be created in its place.

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.

            // Review the results of the run.
            if (taskH.ExecutionResult == DTSExecResult.Failure || taskH.ExecutionStatus == DTSExecStatus.Abend)
                Console.WriteLine("Task failed or abended");
                Console.WriteLine("Task ran successfully");
Return to top