Freigeben über


Readme_LOB-Handhabungsbeispiel

[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 HandlingLOBUsingCLR-Beispiel für SQL Server veranschaulicht das Übertragen von LOBs (Large Objects) zwischen SQL Server und einem Dateisystem, das für den Server mithilfe von CLR-gespeicherten Prozeduren (Common Language Runtime) verfügbar ist. Dieses Beispiel veranschaulicht, wie Sie auf Dateien in serverseitigem Code zugreifen und dann aus CLR-basierten gespeicherten Prozeduren dynamische Abfragen und gespeicherte Prozeduren aufrufen. Darüber hinaus veranschaulicht es, wie Sie CLR-Methoden und CLR-Assemblys mithilfe von Transact-SQL registrieren und deren Registrierung aufheben.

Hinweis

Beim Kompilieren von SQLCLR-Beispielen muss der Pfad der Version des mit SQL Server verteilten .NET Framework-Compilers das erste Framework-Verzeichnis sein, das in der PATH-Umgebungsvariablen angegeben ist. Der Speicherort des in SQL Server enthaltenen Compilers ist entweder Laufwerk:\WINNT\Microsoft.NET\Framework\v2.0.xxxxx oder Laufwerk:\Windows\Microsoft.NET\Framework\v2.0.xxxxx, wobei Laufwerk für das Installationslaufwerk und xxxxx für die in SQL Server enthaltene .NET Framework-Versionsnummer steht.

Das Standardinstallationsverzeichnis ist C:\Programme\Microsoft SQL Server\100\Samples\Engine\Programmability\CLR\HandlingLOBUsingCLR.

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

Ein Entwickler möchte Bilder zwischen SQL Server und dem Dateisystem auf dem Server kopieren.

Sprachen

Transact-SQL, Visual C# und Visual Basic.

Features

Das HandlingLOBUsingCLR-Beispiel verwendet die folgenden Features von SQL Server:

Anwendungsbereich Features

Überall

CLR-gespeicherte Prozeduren, Aufrufen von Transact-SQL-gespeicherten Prozeduren aus CLR-gespeicherten Prozeduren, Datentyp VARBINARY(MAX).

Voraussetzungen

Vor dem Ausführen dieses Beispiels muss die folgende Software installiert werden:

  • 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. Sie können das .NET Framework SDK kostenlos erhalten. Siehe Installieren der .NET Framework-Dokumentation.

Erstellen des Beispiels

Wenn Sie die Schlüsseldatei mit starkem Namen, ExternalSampleKey.snk, noch nicht erstellt haben, erstellen Sie sie mithilfe der folgenden Anweisungen.

So generieren Sie eine Schlüsseldatei mit starkem Namen

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

    - Oder -

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

  2. Wechseln Sie an der Eingabeaufforderung mit dem Befehl CD (Verzeichnis wechseln) vom aktuellen Ordner im Eingabeaufforderungsfenster zum Ordner Samples.

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

Führen Sie folgende Aktionen aus, um das Beispiel zu erstellen:

Beispielerstellung

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

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

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

  3. Falls Sie die Beispiele für SQL Server Database Engine (Datenbankmodul) nicht im Standardspeicherort installiert haben, ändern Sie den Pfad im CREATE ASSEMBLY-Abschnitt des Skripts in Scripts\InstallCS.sql und Scripts\InstallVB.sql auf den Speicherort, 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 in SQL Server Management Studio die Datei scripts\installCS.sql bzw. scripts\installVB.sql, je nachdem, ob Sie das Visual C#-Projekt oder das Visual Basic-Projekt kompiliert haben. Führen Sie das in der Datei enthaltene Skript aus, oder führen Sie an der Eingabeaufforderung einen Befehl aus, der dem folgenden ähnlich ist:

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

    Dieses Skript führt Folgendes aus:

    • Entfernt, sofern vorhanden, alle zu definierenden gespeicherten Prozeduren.
    • Löscht die Assemblyregistrierung, falls diese bereits vorhanden ist.
    • Registriert die Assembly.
    • Registriert die gespeicherten CLR-Prozeduren.
    • Erstellt die gespeicherte Prozedur Transact-SQL, die von einer der gespeicherten CLR-Prozeduren aufgerufen wird.

Ausführen des Beispiels

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

Beispielausführung

  1. Rufen Sie ein ähnliches Skript wie das folgende auf, um ein Bild in der Datenbank zu lesen:

    exec GetPhotoFromDB 70, 'C:\Temp\', 'test6.gif'

    go

    Stellen Sie sicher, dass das angegebene Verzeichnis vorhanden ist.

  2. Rufen Sie ein ähnliches Skript wie das folgende auf, um ein Bild in die Datenbank zu schreiben:

    exec PutPhotoIntoDB 70, 'C:\Temp\', 'test1.gif'

    go

    Fehler werden in der Datei error.log gemeldet, die in dem von Ihnen angegebenen Verzeichnis gespeichert ist. Informationen zu ähnlichen Skripts wie in dieser Vorgehensweise finden Sie in der Datei Scripts\test.sql.

Entfernen des Beispiels

Führen Sie folgende Aktionen aus, um das Beispiel zu entfernen:

Beispielentfernung

  1. Öffnen Sie die Datei scripts\cleanup.sql in Management Studio, und führen Sie das in der Datei enthaltene Skript aus. Führen Sie alternativ den folgenden Befehl an der Eingabeaufforderung aus:

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

Kommentare

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.

Siehe auch

Konzepte

Beispiele für die CLR-Programmierbarkeit

Andere Ressourcen

Programmierkonzepte für die Common Language Runtime (CLR)-Integration

Hilfe und Informationen

Informationsquellen für SQL Server 2008 R2