Freigeben über


ForEachDirectory-Beispiel

Aktualisiert: 05. Dezember 2005

Dieses Codebeispiel zeigt, wie Sie mithilfe von .NET Framework und verwaltetem Code einen benutzerdefinierten Enumerator und eine benutzerdefinierte Benutzeroberfläche zum Festlegen von Eigenschaften für den Enumerator erstellen. Dieses Beispiel wird nicht auf IA64-basierten Systemen unterstützt.

Ausführen des Beispiels

Wenn Ihnen bereits bekannt ist, wie Codebeispiele gefunden, erstellt und installiert werden, können Sie direkt zum Abschnitt Testen des Beispiels wechseln. Dort erhalten Sie Informationen zum Konfigurieren und Ausführen des Codebeispiels.

Voraussetzungen

Für das ForEachDirectory-Beispiel müssen die folgenden Komponenten installiert sein.

  • .NET Framework SDK 2.0 oder Microsoft Visual Studio 2005. Das .NET Framework SDK ist kostenlos erhältlich. Weitere Informationen finden Sie im Thema Installieren des .NET Framework SDK in der Onlinedokumentation.
  • Microsoft SQL Server 2005 Integration Services
ms160909.note(de-de,SQL.90).gifWichtig:
Die Beispiele dienen nur zu Lernzwecken. Sie sind nicht für den Einsatz in einer Produktionsumgebung gedacht und wurden auch nicht in einer Produktionsumgebung getestet. Microsoft leistet keinen technischen Support für diese Beispiele.

Speicherort

Wenn das Codebeispiel am Standardspeicherort installiert wurde, ist das Beispiel in folgendem Verzeichnis gespeichert:

C:\Programme\Microsoft SQL Server\100\Samples\Integration Services\\Programming Samples\Control Flow\ForEachDirectory Sample

Die C#-Lösung für das Codebeispiel ist im CS-Verzeichnis und die Visual Basic-Lösung im VB-Verzeichnis gespeichert.

Weitere Informationen zu dem zwei Schritte umfassenden Prozess der Installation von Beispielen finden Sie unter Installieren von Beispielen. Wenn Sie die aktuelle Version der Beispiele erhalten möchten, einschließlich neuer Beispiele, die nach der ursprünglichen Version von SQL Server 2005 veröffentlicht wurden, finden Sie entsprechende Informationen unter SQL Server 2005 Samples and Sample Databases (April 2006) (in Englisch).

Erstellen des Beispiels

Wenn Sie noch keine Schlüsseldatei mit starkem Namen generiert haben, erstellen Sie diese Datei mithilfe des folgenden Verfahrens.

So generieren Sie eine Schlüsseldatei mit starkem Namen

  1. Klicken Sie zum Öffnen einer Microsoft Visual Studio 2005-Eingabeaufforderung auf Start, zeigen Sie auf Alle Programme, zeigen Sie auf Microsoft Visual Studio 2005 und auf Visual Studio Tools, und klicken Sie dann auf Visual Studio 2005-Eingabeaufforderung.

    - Oder -

    Klicken Sie zum Öffnen einer Microsoft .NET Framework-Eingabeaufforderung auf Start, zeigen Sie auf Alle Programme, zeigen Sie auf Microsoft .NET Framework SDK 2.0, und klicken Sie dann auf SDK-Eingabeaufforderung.

  2. Wechseln Sie an der Eingabeaufforderung mit dem Befehl CD vom aktuellen Verzeichnis im Eingabeaufforderungsfenster in den Ordner mit den Beispielen. Die Schlüsseldatei, die Sie in diesem Ordner erstellen, wird von allen Microsoft SQL Server 2005-Codebeispielen verwendet.

    ms160909.note(de-de,SQL.90).gifHinweis:
    Klicken Sie auf Start, zeigen Sie auf Alle Programme, Microsoft SQL Server 2005 und auf Documentation and Tutorials, und klicken Sie dann auf Samples Directory, um den Ordner zu ermitteln, in dem sich die Beispiele befinden. Wenn bei der Installation der Standardspeicherort verwendet wurde, befinden sich die Beispiele im Ordner <system_drive>:\Programme\Microsoft SQL Server\90\Samples.
  3. Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um die Schlüsseldatei zu generieren:

    sn -k SampleKey.snk

    ms160909.note(de-de,SQL.90).gifWichtig:
    Weitere Informationen zum Schlüsselpaar mit starkem Namen finden Sie unter "Security Briefs: Starke Namen und Sicherheit im .NET Framework" unter .NET-Entwicklung auf der MSDN-Website.
  4. Sie benötigen das öffentliche Schlüsseltoken aus der Schlüsseldatei in einem der nachfolgenden Schritte. Um das öffentliche Schlüsseltoken zu erhalten, extrahieren Sie zuerst den öffentlichen Schlüssel aus der Schlüsseldatei, indem Sie an der Eingabeaufforderung den folgenden Befehl ausführen:

    sn -p SampleKey.snk SampleKeyPublic.snk

  5. Zeigen Sie das öffentliche Schlüsseltoken an, indem Sie an der Eingabeaufforderung den folgenden Befehl ausführen:

    sn -t SampleKeyPublic.snk

  6. Kopieren Sie das öffentliche Schlüsseltoken in die Zwischenablage, oder speichern Sie es für eine spätere Verwendung.

So erstellen Sie das Beispiel

  1. Öffnen Sie Microsoft Visual Studio 2005.

  2. Klicken Sie im Menü Datei auf Öffnen, klicken Sie auf Projekt, und öffnen Sie aus dem Verzeichnis mit den gewünschten Beispielen (CS für C#-Beispiele oder VB für Visual Basic-Beispiele) die Datei ForEachDirectory.sln.

  3. Wählen Sie im Projektmappen-Explorer den ForEachDirectory.cs- oder ForEachDirectory.vb-Code aus.

  4. Suchen Sie im Code nach dem DtsTask-Attribut. Ersetzen Sie in dieser Codezeile den vorhandenen Wert des öffentlichen Schlüsseltokens in der Attributeigenschaft UITypeName. Der alphanumerische Wert nach "PublicKeyToken =" sollte durch den Wert ersetzt werden, der im Befehl sn -t in einem der vorherigen Schritte angezeigt wurde.

  5. Klicken Sie im Menü Erstellen auf ForEachDirectory erstellen, um die DLL-Datei für das Projekt zu erstellen.

Installieren der DLL im Ordner ForEachEnumerator und im globalen Assemblycache

Das Beispiel liegt sowohl in einer Visual Basic- als auch in einer C#-Version vor. Um die Assemblys der jeweiligen Version des Beispiels zu unterscheiden, wird CS oder VB an den Namen der Ausgabeassembly angefügt. Nachdem Sie die Komponente erfolgreich erstellt haben, muss sie in den Ordner ForEachEnumerators kopiert und danach dem globalen Assemblycache hinzugefügt werden, damit sie in Business Intelligence Development Studio verwendet werden kann.

So installieren Sie die Komponente im Ordner ForEachEnumerators

  1. Kopieren Sie die Assembly (ForeachDirectoryCS.dll oder ForeachDirectoryVB.dll) in den Ordner, der sich unter %system%\Programme\Microsoft SQL Server\90\DTS\ForEachEnumerators befindet.

  2. Öffnen Sie das Verzeichnis für den globalen Assemblycache unter %system%\assembly. Auf den meisten Computern ist dies C:\Windows\assembly.

  3. Wählen Sie die Assembly im ersten Fenster aus, und verschieben Sie sie mit Drag und Drop in das Fenster, das den Ordner assembly enthält.

So installieren Sie die Komponente im globalen Assemblycache durch Drag und Drop der Assembly

  1. Kopieren Sie die Assembly (ForeachDirectoryCS.dll oder ForeachDirectoryVB.dll) in den Ordner, der sich unter %system%\Programme\Microsoft SQL Server\90\DTS\ForEachEnumerators befindet.

  2. Öffnen Sie das Verzeichnis für den globalen Assemblycache unter %system%\assembly. Auf den meisten Computern ist dies C:\Windows\assembly.

  3. Wählen Sie die Assembly im ersten Fenster aus, und verschieben Sie sie mit Drag und Drop in das Fenster, das den Ordner assembly enthält.

So installieren Sie die Komponente im globalen Assemblycache mithilfe von gacutil.exe

  1. Öffnen Sie ein Eingabeaufforderungsfenster.

  2. Geben Sie den folgenden Befehl ein, um die C#-Version der Komponente und die Benutzeroberfläche im globalen Assemblycache zu installieren:

    gacutil.exe -iF "c:\Program Files\Microsoft Sql Server\90\DTS\ ForEachEnumerators\ForEachDirectoryCS.dll"

  3. Geben Sie den folgenden Befehl ein, um die Visual Basic-Version der Komponente und die Benutzeroberfläche im globalen Assemblycache zu installieren:****

    gacutil.exe -iF "c:\Program Files\Microsoft Sql Server\90\DTS\ForeachEnumerators\ForeachDirectoryVB.dll"

Hinweis   Zwecks Vereinfachung wurde die Benutzeroberfläche für dieses Beispiel im gleichen Projekt abgelegt wie der Taskcode. Somit muss lediglich die DLL in das Assemblyverzeichnis kopiert werden. Falls Sie beabsichtigen, die Benutzeroberfläche für ein anderes Projekt zu codieren, müssen Sie neben der DLL mit dem Code auch die DLL mit der Benutzeroberfläche in den globalen Assemblycache kopieren. Allerdings muss nur der Code in ein bestimmtes Verzeichnis kompiliert werden.

Nach Abschluss dieser Schritte ist der Enumerator im Foreach-Schleifen-Editor des Foreach-Schleifencontainers verfügbar.

So verwenden Sie das Beispiel in Business Intelligence Development Studio

  1. Öffnen Sie Business Intelligence Development Studio.

  2. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.

  3. Klicken Sie im Dialogfeld Neues Projekt unter Projekttypen auf Business Intelligence-Projekte, und klicken Sie im rechten Bereich auf Integration Services-Projekt.

  4. Geben Sie ForEachDirectory in das Feld Name als Namen für das neue Projekt ein.

  5. Wählen Sie im Feld Speicherort den gewünschten Speicherort für die Datei aus. Klicken Sie auf OK.

  6. Doppelklicken Sie im Dialogfeld Projektmappen-Explorer auf Package.dtsx.

  7. Wählen Sie im Feld Speicherort den gewünschten Speicherort für die Datei aus. Klicken Sie auf OK.

  8. Doppelklicken Sie im Dialogfeld Projektmappen-Explorer auf Package.dtsx.

  9. Fügen Sie den Foreach-Schleifencontainer der Ablaufsteuerungsoberfläche eines Pakets hinzu.

  10. Öffnen Sie den Foreach-Schleifen-Editor, indem Sie auf den in Schritt 1 hinzugefügten Foreach-Schleifencontainer doppelklicken.

  11. Klicken Sie auf den Knoten Auflistung, und wählen Sie aus der Dropdownliste Enumerator den ForEachDirectory-Enumerator aus.

  12. Geben Sie die Werte für die Eigenschaften des ForEachDirectory-Enumerators an, und klicken Sie dann auf OK.

Testen des Beispiels

Nachdem Sie die Komponente einem Datenflusstask in einem Paket hinzugefügt haben, können Sie sie im SSIS-Designer konfigurieren. Das Ausführungsverhalten des ForEachDirectory-Enumerators wird von fünf Eigenschaften gesteuert.

Eigenschaft Beschreibung

RootDirectorySource

Gibt die Quelle für die RootDirectory-Eigenschaft an, die durch einen Verbindungs-Manager, eine Variable oder durch direkte Eingabe festgelegt werden kann.

RootDirectory

Gibt das Verzeichnis an, in dem der Enumerator die Auflistung beginnt.

IncludeRootDirectory

Gibt an, ob das Stammverzeichnis in den aufgelisteten Verzeichnissen enthalten ist.

EnumerateSubFolders

Gibt an, ob die Unterordner der im Stammverzeichnis enthaltenen Ordner aufgelistet werden.

SiblingFoldersBeforeSubFolders

Wenn EnumerateSubFolders true ist, gibt diese Eigenschaft an, ob der Enumerator die gleichgeordneten Ordner zuerst auflistet, oder ob zuerst die vollständige Verzeichnisstruktur aufgelistet wird.

Änderungsverlauf

Version Verlauf

17. Juli 2006

05. Dezember 2005

Neuer Inhalt:
  • Anweisungen zum Verwenden des Beispiels in Business Intelligence Development Studio wurden integriert.
  • Es wurde eine Tabelle hinzugefügt, die die in der benutzerdefinierten Benutzeroberfläche gefundenen Eigenschaften beschreibt.