Freigeben über


Readme_Send DataSet-Beispiel

[Dieses Thema ist eine Dokumentation zur Vorabversion und kann in zukünftigen Versionen geändert werden. Leere Themen sind als Platzhalter eingefügt. BITTE BEACHTEN SIE: Microsoft ist bestrebt, Ihnen möglichst viele Inhalte in deutscher Sprache anzubieten. Deshalb stellen wir Ihnen auch Dokumente zur Verfügung, die mit alternativen Verfahren übersetzt wurden. Der Inhalt der Dokumente dieser Vorabversion wurde zum Teil mithilfe solcher Verfahren übersetzt. Microsoft ist sich bewusst, dass ein auf diese Weise übersetztes Dokument nicht immer perfekt ist. Es kann Fehler in Bezug auf Wortwahl, Satzbau oder Grammatik enthalten. Für die Übersetzung der endgültigen Version dieses Inhalts werden herkömmliche Verfahren verwendet, sodass die Qualität der früherer Versionen entspricht.]

Dieses Beispiel funktioniert nur mit SQL Server 2005 und SQL Server 2008. In einer SQL Server-Version vor SQL Server 2005 kann das Beispiel nicht ausgeführt werden.

Das Send DataSet-Beispiel zeigt, wie ein ADO.NET-basiertes DataSet in einer serverseitigen Common Language Runtime (CLR)-basierten gespeicherten Prozedur als Resultset an den Client zurückgegeben wird. Dies ist z. B. hilfreich, wenn eine solche gespeicherte Prozedur ein DataSet mit den Ergebnissen einer Abfrage füllt und dann die in diesem DataSet enthaltenen Daten manipuliert. Dieses Verfahren kann sich auch als nützlich erweisen, wenn die gespeicherte Prozedur ein DataSet neu erstellt und auffüllt.

Das Beispiel besteht aus zwei Klassen: DataSetUtilities und TestSendDataSet. Mit der SendDataSet-Methode auf der DataSetUtilities-Klasse wird ein allgemeines Verfahren für die Übertragung des Inhalts einer DataSet-Instanz an den Client implementiert. Die auf der TestSendDataSet-Klasse definierte DoTest-Methode überprüft die Funktionsfähigkeit der SendDataSet-Methode, indem sie ein DataSet erstellt und mit Daten aus der gespeicherten Transact-SQL-Prozedur usp_GetTwoBOMTestData füllt. Die Prozedur usp_GetTwoBOMTestData führt die gespeicherte Transact-SQL-Prozedur GetBillOfMaterials zweimal aus, um rekursiv das Stücklistenszenario für zwei Produkte abzufragen, die als Parameter für die gespeicherte Prozedur usp_GetTwoBOMTestData angegeben wurden. Nach dem Füllen des Datasets werden die Daten normalerweise vor dem Aufrufen von SendDataSet geändert, um die Daten im Dataset als Resultset an den Client zu übermitteln. Aus Gründen der Vereinfachung gibt dieses Beispiel die Daten ungeändert zurück.

Installationsverzeichnis: C:\Programme\Microsoft SQL Server\100\Samples\Engine\Programmability\CLR\SendDataSet\

SQL Server-Beispiele und -Beispieldatenbanken müssen heruntergeladen und installiert werden, bevor Sie sie anzeigen oder mit ihnen arbeiten können. Weitere Informationen finden Sie unter Überlegungen zum Installieren der SQL Server-Beispiele und -Beispieldatenbanken.

Szenario

Jane ist eine Entwicklerin für Adventure Works Cycles. Sie hat Informationen in einer ihrer CLR-basierten gespeicherten Prozeduren in einem DataSet gesammelt und möchte die in diesem DataSet enthaltenen Informationen an die Clientanwendung zurückgeben.

Sprachen

Transact-SQL, Visual C# und Visual Basic.

Features

Das Send DataSet-Beispiel verwendet die folgenden Features von SQL Server.

Anwendungsbereich Features

Gesamt

CLR, Metadaten, DataSet, gespeicherte Prozeduren, CTE

Voraussetzungen

Stellen Sie vor dem Ausführen dieses Beispiels sicher, dass die folgende Software installiert ist:

  • Microsoft SQL Server oder SQL Server Express. SQL Server Express erhalten Sie kostenlos auf der Website mit der Dokumentation und den Beispielen für SQL Server Express.
  • Die AdventureWorks2008R2-Datenbank, die auf der SQL Server Developer-Website zur Verfügung gestellt wird.
  • Die SQL Server Database Engine (Datenbankmodul)-Beispiele, die auf der SQL Server Developer-Website zur Verfügung gestellt werden.
  • .NET Framework SDK 2.0 oder Microsoft Visual Studio 2005. Das .NET Framework SDK ist kostenlos erhältlich. Siehe Installieren der .NET Framework-Dokumentation.

Erstellen des Beispiels

Generieren Sie die Schlüsseldatei mithilfe der folgenden Anweisungen, falls Sie noch keine Schlüsseldatei mit starkem Namen erstellt haben.

So generieren Sie eine Schlüsseldatei mit starkem Namen

  1. Öffnen Sie eine Microsoft Visual Studio 2005-Eingabeaufforderung. Klicken Sie auf Start, zeigen Sie auf Alle Programme und danach auf Microsoft .NET Framework SDK 2.0, und klicken Sie dann auf SDK-Eingabeaufforderung.

    – oder –

    Öffnen Sie eine Microsoft .NET Framework-Eingabeaufforderung. Klicken Sie auf Start, zeigen Sie auf Alle Programme und dann auf Microsoft .NET Framework SDK 2.0, und klicken Sie anschließend auf SDK-Eingabeaufforderung.

  2. Wechseln Sie an der Eingabeaufforderung mit dem Befehl CD (Verzeichnis wechseln) vom aktuellen Verzeichnis im Eingabeaufforderungsfenster zu dem Ordner, in dem die Beispiele installiert werden.

    Hinweis

    Klicken Sie auf Start, zeigen Sie auf Alle Programme, Microsoft SQL Server und auf Dokumentation und Lernprogramme, und klicken Sie dann auf Beispielordner, um den Ordner zu ermitteln, in dem sich die Beispiele befinden. Wenn das Standardverzeichnis verwendet wurde, befinden sich die Beispiele im Verzeichnis <system_drive>:\Programme\Microsoft SQL Server\100\Samples.

  3. Führen Sie an der Eingabeaufforderung den folgenden Befehl zum Generieren der Schlüsseldatei aus:

    sn -k SampleKey.snk

    Wichtig

    Weitere Informationen zum Schlüsselpaar mit starkem Namen finden Sie unter "Security Briefs: Starke Namen und Sicherheit im .NET Framework" unter .NET-Entwicklung von MSDN.

So erstellen Sie das Send DataSet-Beispiel

  1. Kompilieren Sie das Beispiel mithilfe von Visual Studio 2005 und der bereitgestellten Visual Studio-Projektmappe, oder verwenden Sie das im Lieferumfang von .NET Framework SDK 2.0 enthaltene Microsoft MSBuild. Führen Sie an der Eingabeaufforderung einen Befehl aus, der dem folgenden ähnlich ist:

    msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\SendDataSet.sln

  2. Stellen Sie sicher, dass die AdventureWorks2008R2-Datenbank installiert ist.

  3. Wenn Sie die Beispiele für SQL Server Database Engine (Datenbankmodul) nicht im Standardspeicherort installiert haben, ändern Sie den CREATE ASSEMBLY-Abschnitt des Skripts in Scripts\InstallCS.sql und Scripts\InstallVB.sql, um auf den Speicherort zu verweisen, in dem die Beispiele installiert wurden.

  4. Wenn Sie keine Administratorrechte für die von Ihnen verwendete SQL Server-Instanz besitzen, müssen Sie sich von einem Administrator die CreateAssembly-Berechtigung erteilen lassen, um die Installation ausführen zu können.

  5. Öffnen Sie die Datei scripts\installCS.sql bzw. scripts\installVB.sql (je nachdem, ob Sie das Visual C#-Projekt oder das Visual Basic-Projekt kompiliert haben) in Microsoft SQL Server Management Studio. Führen Sie das in der Datei enthaltene Skript aus, oder führen Sie in einem Eingabeaufforderungsfenster einen Befehl aus, der dem folgenden ähnlich ist:

    sqlcmd -E -I -i Scripts\InstallCS.sql

Ausführen des Beispiels

So führen Sie das Send DataSet-Beispiel aus

  1. Öffnen Sie die Datei scripts\test.sql in Management Studio, und führen Sie das in der Datei enthaltene Skript aus. Oder führen Sie dann den folgenden Befehl in einem Eingabeaufforderungsfenster aus:

    sqlcmd -E -I -i Scripts\test.sql

Entfernen des Beispiels

So entfernen Sie das Send DataSet-Beispiel

  1. Öffnen Sie die Datei scripts\cleanup.sql in Management Studio, und führen Sie das in der Datei enthaltene Skript aus. Oder führen Sie dann den folgenden Befehl in einem Eingabeaufforderungsfenster aus:

    sqlcmd -E -I -i Scripts\cleanup.sql

Kommentar

Die CLR für SQL Server oder SQL Server Express muss aktiviert sein, damit dieses Beispiel ordnungsgemäß ausgeführt werden kann.

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. Beispielanwendungen und Assemblys sollten nicht ohne die Zustimmung des Systemadministrators mit der SQL Server-Datenbank oder dem Berichtsserver verbunden sein oder verwendet werden.