ラージ オブジェクト (LOB) 処理サンプルの Readme

[このトピックはプレリリース版のドキュメントであり、今後のリリースでは変更される場合があります。空のトピックがプレースホルダーとして含まれています。ご注意 : マイクロソフトでは、より多くのコンテンツを日本語で提供できるよう、機械翻訳などの方法によってローカライズされたドキュメントを提供する場合があります。このプレリリース版の一部のコンテンツはそのような方法によってローカライズされたものです。私たちマイクロソフトは、このような方法でローカライズされたものが必ずしも最適ではなく、語彙、構文、文法における誤りを含む可能性を認識しています。このコンテンツの最終版は、従来の方法によるローカライズで行われ、その品質は旧版と同等のものになります。]

このサンプルは、SQL Server 2005 および SQL Server 2008 でのみ動作します。SQL Server 2005 より前のバージョンでは動作しません。

SQL Server の HandlingLOBUsingCLR サンプルでは、共通言語ランタイム (CLR) ストアド プロシージャを使用して、サーバーで使用可能なファイル システムと SQL Server の間でラージ オブジェクト (LOB) を転送する方法を示します。このサンプルでは、サーバー側コード内のファイルへのアクセス方法を示し、CLR ベースのストアド プロシージャから動的クエリとストアド プロシージャの両方を呼び出します。また、Transact-SQL を使用した、CLR メソッドとアセンブリの登録解除と登録を行う方法も示します。

注意

SQLCLR サンプルをコンパイルするときに、SQL Server に付属する .NET Framework コンパイラのバージョンのパスを、PATH 環境変数内で最初の Framework ディレクトリにする必要があります。SQL Server に付属するコンパイラの場所は、drive:\WINNT\Microsoft.NET\Framework\v2.0.xxxxx または drive:\Windows\Microsoft.NET\Framework\v2.0.xxxxx のどちらかです。drive はインストール ドライブ、xxxxx は SQL Server に付属している .NET Framework のバージョンです。

既定のインストール ディレクトリは、C:\Program Files\Microsoft SQL Server\100\Samples\Engine\Programmability\CLR\HandlingLOBUsingCLR です。

SQL Server のサンプルやサンプル データベースを表示したり使用したりするには、まずそれをダウンロードしてインストールする必要があります。詳細については、「SQL Server のサンプルとサンプル データベースのインストールに関する注意点」を参照してください。

シナリオ

開発者は、SQL Server とサーバーのファイル システムの間でイメージのコピーを行う必要があります。

言語

Transact-SQL、Visual C#、および Visual Basic。

機能

HandlingLOBUsingCLR サンプルは、SQL Server の次の機能を使用します。

アプリケーション エリア 機能

全体

CLR ストアド プロシージャ、CLR ストアド プロシージャから Transact-SQL ストアド プロシージャの呼び出し、VARBINARY(MAX) データ型

前提条件

このサンプルを実行する前に、次のソフトウェアがインストールされていることを確認してください。

  • SQL Server または SQL Server Express。SQL Server Express は、SQL Server Express ドキュメントとサンプルの Web サイトから無償で入手できます。
  • AdventureWorks2008R2 データベース。SQL Server デベロッパー Web サイトから入手できます。
  • SQL Server データベース エンジン サンプル。SQL Server デベロッパー Web サイトから入手できます。
  • .NET Framework SDK 2.0 または Microsoft Visual Studio 2005。.NET Framework SDK は無償で入手できます。「.NET Framework ドキュメントのインストール」を参照してください。

サンプルのビルド

まだ厳密な名前のキー ファイル ExternalSampleKey.snk を作成していない場合は、次の手順に従ってキー ファイルを生成します。

厳密な名前のキー ファイルを生成するには

  1. Visual Studio 2005 コマンド プロンプトを開きます。[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft Visual Studio 2005][Visual Studio Tools] の順にポイントして、[Visual Studio 2005 コマンド プロンプト] をクリックします。

    または

    .NET Framework コマンド プロンプトを開きます。[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft .NET Framework SDK v2.0] の順にポイントして、[SDK コマンド プロンプト] をクリックします。

  2. コマンド プロンプトでディレクトリ変更 (CD) コマンドを使用して、コマンド プロンプト ウィンドウの現在のフォルダを Samples フォルダに変更します。

    注意

    サンプルが配置されているフォルダを調べるには、[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft SQL Server][マニュアルとチュートリアル] の順にポイントして、[サンプル ディレクトリ] をクリックします。既定のインストール場所を使用している場合、サンプルは <system_drive>:\Program Files\Microsoft SQL Server\100\Samples にあります。

  3. コマンド プロンプトで、次のコマンドを実行してキー ファイルを生成します。

    sn -k ExternalSampleKey.snk

    注意

    厳密な名前のキー ペアの詳細については、MSDN の .NET Development Center にある「Security Briefs: Strong Names and Security in the .NET Framework」を参照してください。

サンプルをビルドするには、次の手順を行います。

サンプルのビルド

  1. Visual Studio 2005 および提供されている Visual Studio ソリューションを使用するか、.NET Framework SDK 2.0 に含まれている MSBuild を使用して、サンプルをコンパイルします。コマンド プロンプトで、次のようなコマンドを実行します。

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

  2. AdventureWorks2008R2 データベースがインストールされていることを確認します。

  3. 既定の場所に SQL Server データベース エンジン サンプルをインストールしなかった場合は、サンプルのインストール先が参照されるように、Scripts\InstallCS.sql スクリプトおよび Scripts\InstallVB.sql スクリプトの CREATE ASSEMBLY 部のパスを変更します。

  4. 使用している SQL Server インスタンスの管理者でない場合、インストールを完了するためには、CreateAssembly 権限が管理者から許可されている必要があります。

  5. Visual C# プロジェクトと Visual Basic プロジェクトのどちらをコンパイルしたかに応じて、SQL Server Management Studio でファイル scripts\installCS.sql または scripts\installVB.sql を開きます。ファイルに含まれているスクリプトを実行するか、コマンド プロンプトで次のコマンドを実行します。

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

    このスクリプトは、次のように動作します。

    • 定義されるストアド プロシージャが既に存在する場合は、それらを削除します。
    • アセンブリの登録が既に存在する場合は、削除します。
    • アセンブリを登録します。
    • CLR ストアド プロシージャを登録します。
    • いずれかの CLR ストアド プロシージャによって呼び出される Transact-SQL ストアド プロシージャを作成します。

サンプルの実行

このサンプルを実行するには、次の手順を実行します。

サンプルの実行

  1. データベースからのイメージを読み取るには、次のようなスクリプトを呼び出します。

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

    go

    指定したディレクトリが存在することを確認します。

  2. データベースにイメージを書き込むには、次のようなスクリプトを呼び出します。

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

    go

    エラーは、指定したディレクトリの error.log ファイルにレポートされます。この手順にあるようなスクリプトについては、Scripts\test.sql ファイルを参照してください。

サンプルの削除

このサンプルを削除するには、次の手順を行います。

サンプルの削除

  1. Management Studio で scripts\cleanup.sql ファイルを開き、ファイルに含まれているスクリプトを実行します。または、コマンド プロンプトで次のコマンドを実行します。

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

備考

このサンプルを正しく機能させるには、SQL Server または SQL Server Express の CLR を有効にする必要があります。

サンプルは、演習目的で利用するためにのみ提供されています。サンプルを運用環境で使用することは想定されていないため、運用環境でのサンプルのテストは行われていません。Microsoft では、これらのサンプルに関する製品サポート サービスを提供していません。システム管理者の承認を得ることなく、サンプル アプリケーションやサンプル アセンブリを、運用中の SQL Server データベースやレポート サーバーに接続したり、これらのデータと共に使用することは避けてください。

参照

概念

CLR プログラミング サンプル

その他の技術情報

CLR (共通言語ランタイム) 統合のプログラミング概念

ヘルプおよび情報

SQL Server 2008 R2 の参考資料の入手