Язык

SendMailTask.Execute Метод

Определение

Выполняет задачу отправить почту.

public:
 override Microsoft::SqlServer::Dts::Runtime::DTSExecResult Execute(Microsoft::SqlServer::Dts::Runtime::Connections ^ connections, Microsoft::SqlServer::Dts::Runtime::VariableDispenser ^ variableDispenser, Microsoft::SqlServer::Dts::Runtime::IDTSComponentEvents ^ 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.VariableDispenser variableDispenser, Microsoft.SqlServer.Dts.Runtime.IDTSComponentEvents events, Microsoft.SqlServer.Dts.Runtime.IDTSLogging log, object transaction);
override this.Execute : Microsoft.SqlServer.Dts.Runtime.Connections * Microsoft.SqlServer.Dts.Runtime.VariableDispenser * Microsoft.SqlServer.Dts.Runtime.IDTSComponentEvents * Microsoft.SqlServer.Dts.Runtime.IDTSLogging * obj -> Microsoft.SqlServer.Dts.Runtime.DTSExecResult
Public Overrides Function Execute (connections As Connections, variableDispenser As VariableDispenser, events As IDTSComponentEvents, log As IDTSLogging, transaction As Object) As DTSExecResult

Параметры

connections
Connections

Набор соединений, используемых в этой задаче.

variableDispenser
VariableDispenser

Объект для блокировки переменных.

events
IDTSComponentEvents

An T:Microsoft. Интерфейс SqlServer.Dts.Runtime.IDTSEvents для создания событий.

log
IDTSLogging

An T:Microsoft. Интерфейс SqlServer.Dts.Runtime.IDTSLogging.

transaction
Object

Транзакция, к которой принадлежит контейнер. SSIS Runtime обеспечивает транзакцию для контейнера, основанную на P:Microsoft. Свойство SqlServer.Dts.Runtime.DtsContainer.TransactionOption. Это значение может иметь значение NULL.

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

Одно из значений DTSExecResult .

Примеры

Следующий пример кода показывает, как запустить пакет, содержащий a 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 , когда свойство TransactionOptionfalse. Если свойство TransactionOption истинно, вы можете ввести nulltransaction параметр, чтобы указать, что контейнер поддерживает транзакции, но не участвует.

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