언어

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 .

variables
Variables

컬렉션입니다 Variables .

events
IDTSEvents

이벤트를 제기하는 인터페이스.IDTSEvents

log
IDTSLogging

IDTSLogging 인터페이스입니다.

transaction
Object

트랜잭션에 참여할 경우 핸들을 트랜잭션 유형으로 전환합니다. 이 값은 null일 수 있습니다.

반품

실행 파일의 성공, 실패 또는 기타 상태를 나타내는 열거 값을 DTSExecResult 반환합니다.

예제

다음 코드 예시는 클래스 DtsContainer 로부터 Executable 상속받는 패키지를 실행하는 방법을 보여줍니다. 패키지에는 .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 주요 용도는 커스텀 작업을 생성할 때 상속되고 덮어쓰는 것입니다. 실행 메서드를 덮어쓰는 방법에 대한 자세한 내용은 ' 사용자 지정 작업 코딩(Coding a Custom Task)'을 참조하세요.

메서드는 Execute 패키지가 실행되기 전에 암묵적으로 메서드를 Validate 호출합니다. 패키지 내 모든 작업은 검증 시 적절한 설정에 대해 검토되며, 패키지, 컨테이너 및 기타 구성 요소를 포함한 모든 객체가 검토됩니다.

검증 단계에서 패키지가 실패할 만한 문제가 발생하지 않는다면, 패키지 객체는 패키지 내 각 작업과 객체에 대해 메서드를 Execute 호출합니다.

속성이 TransactionOptionfalse때 매개변수를 통과 transaction 합니다null. 속성이 TransactionOption 참이라면, 컨테이너가 트랜잭션을 지원하지만 참여하지 않는다는 매개변수를 전달 nulltransaction 할 수 있습니다.

적용 대상