Sprache

Executables.Add(String) Methode

Definition

Fügt ein neues Container oder Task-Objekt zur Sammlung Executables hinzu.

public:
 Microsoft::SqlServer::Dts::Runtime::Executable ^ Add(System::String ^ moniker);
public Microsoft.SqlServer.Dts.Runtime.Executable Add(string moniker);
member this.Add : string -> Microsoft.SqlServer.Dts.Runtime.Executable
Public Function Add (moniker As String) As Executable

Parameter

moniker
String

Der Name für die ausführbare Datei.

Gibt zurück

Ein Objekt aus dem neu erstellten TaskHostExecutable Objekt. Um Eigenschaften zu setzen oder Methoden auf dem neuen Objekt aufzurufen, hast du zwei Optionen: Verwenden Sie die Properties Sammlung der TaskHost. Zum Beispiel verwenden Sie th, um eine Eigenschaft aus dem Objekt zu erhalten. Properties["propertyname"]. GetValue(th)). Um eine Eigenschaft festzulegen, benutze th. Properties["propertyname"]. SetValue(th, <value>);. Wirke die der InnerObjectTaskHost Aufgabe in die Aufgabenklasse. Um zum Beispiel die Bulk Insert-Aufgabe nach einem BulkInsertTask Paket hinzuzufügen Executable und anschließend in a TaskHostzu casten, verwenden Sie BulkInsertTask myTask = th. InnerObject als BulkInsertTask;. Die Verwendung der Klasse TaskHost im Code, ohne in die aufgabenspezifische Klasse zu casten, hat folgende Vorteile: Der TaskHostProperties Anbieter benötigt keine Referenz auf die Assembler im Code. Man kann generische Routinen programmieren, die für jede Aufgabe funktionieren, weil man den Namen der Aufgabe zur Kompilierungszeit nicht kennen muss. Diese generischen Routinen können Methoden sein, bei denen man den Namen der Aufgabe an die Methode weitergibt, und der Methodencode funktioniert für alle Aufgaben. Das ist eine gute Methode, um Testcode zu schreiben. Das Casting von der TaskHost Klasse zur aufgabenspezifischen Klasse hat folgende Vorteile: Das Visual Studio-Projekt bietet Ihnen Statement-Completion (IntelliSense). Der Code kann schneller laufen. Erzeugt früh gebundene Objekte Für weitere Informationen zu früher und später Bindung siehe Early and Late Binding in Visual Basic Language Concepts. Je nach Bedarf kann es sein, dass du das Objekt seiner aufgabenspezifischen Klasse zuschreibst oder auch nicht.

Beispiele

Das folgende Codebeispiel fügt die Bulk Insert-Aufgabe als ausführbare Datei zum Paket hinzu.

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

namespace Executables_API  
{  
        class Program  
        {  
        static void Main(string[] args)  
        {  
            Package pkg = new Package();  
            Executable exec = pkg.Executables.Add("STOCK:BulkInsertTask");  

            // Obtain the collection.  
            Executables pgkExecs = pkg.Executables;  
            foreach (Executable eachExec in pgkExecs)  
            {  
                TaskHost th = exec as TaskHost;  
                Console.WriteLine("Executable creation name is: {0}", th.CreationName);  
            }  
                        // Show that at least one executable exists.  
            if (pgkExecs.Contains(0))  
            {  
                Console.WriteLine("Contains returned true");  
            }  
            else  
            {  
                Console.WriteLine("Contains returned false");  
            }  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  

Namespace Executables_API  
        Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim pkg As Package =  New Package()   
            Dim exec As Executable =  pkg.Executables.Add("STOCK:BulkInsertTask")   

            ' Obtain the collection.  
            Dim pgkExecs As Executables =  pkg.Executables   
            Dim eachExec As Executable  
            For Each eachExec In pgkExecs  
                Dim th As TaskHost =  exec as TaskHost   
                Console.WriteLine("Executable creation name is: {0}", th.CreationName)  
            Next  
                        ' Show that at least one executable exists.  
            If pgkExecs.Contains(0) Then  
                Console.WriteLine("Contains returned true")  
            Else   
                Console.WriteLine("Contains returned false")  
            End If  
        End Sub  
        End Class  
End Namespace  

Beispielausgabe:

Executable creation name is: Microsoft.SqlServer.Dts.Tasks.BulkInsertTask.BulkInsertTask, Microsoft.SqlServer.BulkInsertTask, Version=10.0.000.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91

Contains returned true

Hinweise

Verwenden Add , wenn du einen neuen Container oder eine neue Aufgabe erstellst und ihn zur Executables Sammlung hinzufügen möchtest. Der Methodenparameter ist eine Zeichenkette, die den Namen CLSID, PROGID, STOCK oder CreationName eine Eigenschaft des TaskInfo Objekts sein kann. Die Methode gibt das TaskHost Objekt der neu erstellten Aufgabe als Objekt Executable zurück. Weitere Informationen hierzu finden Sie unter Hinzufügen oder Löschen eines Tasks oder Containers in einer Ablaufsteuerung.

Gilt für: