Freigeben über


Readme_MARS

Aktualisiert: 17. Juli 2006

Dieses Beispiel zeigt, wie das MARS-Feature (Multiple Active Result Set) zu verwenden ist. Mithilfe von MARS können Sie mehrere Befehle über dieselbe Verbindung ausführen, auch wenn möglicherweise noch nicht alle aus der Ausführung eines oder mehrerer Befehle resultierenden Ergebnisse vollständig an den Client zurückgegeben werden.

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.

Standardspeicherort: drive:\Program Files\Microsoft SQL Server\90\Samples\Engine\

Data Access\ADO\MARS

Szenario

AdventureWorks Cycles möchte die Sollkosten und den Listenpreis seiner meistverkauften Fahrräder anheben, da die Preise für diese Fahrräder infolge steigender Farbanstrichkosten gestiegen sind. Der Preisanstieg variiert je nach Anstrichfarbe.

Sprachen

Transact-SQL, Visual C# und Visual Basic.

Features

Das MARS-Beispiel verwendet die folgenden Features von SQL Server 2005 und Microsoft .NET Framework Version 2.0:

Anwendungsbereich Features

Gesamt

MARS, ADO.NET 2.0, gespeicherte Transact-SQL-Prozeduren

Voraussetzungen

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

  • SQL Server 2005 oder SQL Server 2005 Express Edition (SQL Server Express). Sie können SQL Server Express von der Website SQL Server 2005 Samples and Sample Databases (in Englisch) downloaden.
  • Die AdventureWorks-Datenbank, die im Lieferumfang von SQL Server 2005 enthalten und auch auf der SQL Server Developer-Website verfügbar ist.
  • Die Beispiele zu SQL Server 2005-Datenbankmodul. Diese Beispiele sind in SQL Server 2005 enthalten. Sie können die aktuelle Version der Beispiele von der SQL Server Developer-Website downloaden.
  • .NET Framework SDK 2.0 oder Microsoft Visual Studio 2005. Das .NET Framework SDK ist kostenlos erhältlich. Siehe Installieren des .NET Framework SDK.

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 anschließend 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) im Eingabeaufforderungsfenster vom aktuellen Verzeichnis zu dem Ordner, in dem die Beispiele installiert sind.

    ms160937.note(de-de,SQL.90).gifHinweis:
    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 <Systemlaufwerk>:\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

    ms160937.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.

Um dieses Beispiel zu erstellen, gehen Sie wie folgt vor:

Beispielerstellung

  1. Kompilieren Sie das Beispiel mithilfe von Visual Studio und der im Verzeichnis CS enthaltenen Projektmappendatei, oder geben Sie in einem .NET Framework- oder Microsoft Visual Studio 2005-Eingabeaufforderungsfenster folgende MSBuild-Befehlszeile ein:

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

Ausführen des Beispiels

Um dieses Beispiel auszuführen, gehen Sie wie folgt vor:

Beispielausführung

  1. Öffnen Sie das Skript scripts\install.sql mithilfe von SQL Server Management Studio. Führen Sie den Inhalt dieser Datei aus, oder führen Sie den folgenden Befehl in einem Eingabeaufforderungsfenster aus:

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

  2. Wechseln Sie in einem Eingabeaufforderungsfenster in das Verzeichnis CS\MARS\bin\debug, und führen Sie den folgenden Befehl aus:

    mars

Entfernen des Beispiels

Um die durch dieses Beispiel geänderten Daten zurückzusetzen und das Beispiel zu entfernen, gehen Sie wie folgt vor:

Beispielentfernung

  1. Öffnen Sie das Skript Scripts\cleanup.sql mithilfe von Management Studio. Führen Sie den Inhalt dieser Datei aus, oder führen Sie den folgenden Befehl in einem Eingabeaufforderungsfenster aus:

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

Kommentar

Überlegen Sie stets, ob es nicht effizienter wäre, JOIN-Verknüpfungen in einer serverseitigen Abfrage oder Aktualisierung anstelle von MARS zu verwenden. Angenommen, Sie möchten die Auftrags-ID, die Kunden-ID, die Produktnummer, die Bestellmenge und den Einzelpostengesamtbetrag für jeden Verkaufsauftragsdatensatz aus dem Monat März 2004 wissen. Sie könnten eine entsprechende Abfrage zwar mit MARS schreiben, doch ist es effizienter, die Abfrage mithilfe einer JOIN-Verknüpfung zu verfassen, wie im Folgenden zu sehen ist.

SELECT SOH.SalesOrderID, SOH.CustomerID, SOD.ProductID, 
  SOD.OrderQty, SOD.LineTotal
FROM Sales.SalesOrderHeader as SOH
JOIN Sales.SalesOrderDetail as SOD 
  ON SOH.SalesOrderID = SOD.SalesOrderID
WHERE SOH.OrderDate >= CONVERT(datetime, '20040301') 
  AND SOH.OrderDate < CONVERT(datetime, '20040401')
ORDER BY SOH.SalesOrderID;

Änderungsverlauf

Version Verlauf

05. Dezember 2005

Geänderter Inhalt:
  • Die Anweisungen zum Generieren einer Schlüsseldatei wurden geändert, einschließlich des Namens und Speicherortes der Schlüsseldatei.