Send DataSet サンプル
更新 : 2005 年 12 月 5 日
Send DataSet サンプルでは、サーバー側の共通言語ランタイム (CLR) ベースのストアド プロシージャ内で、クライアントへの結果セットとして ADO .NET ベースのデータセットを返す方法を示しています。この方法は、このようなストアド プロシージャがクエリの結果を使用してデータセットにデータを格納し、そのデータセットに含まれているデータを操作する場合などに役立ちます。また、ストアド プロシージャによってデータセットを新しく作成してデータを設定する場合にも役立ちます。
このサンプルは、DataSetUtilities および TestSendDataSet という 2 つのクラスで構成されています。DataSetUtilities クラスの SendDataSet メソッドには、データセット インスタンスのコンテンツをクライアントに送信するための汎用的な手段が実装されています。TestSendDataSet クラスで定義されている DoTest メソッドは、データセットを作成し、Transact-SQL ストアド プロシージャ usp_GetTwoBOMTestData から返されたデータを設定することによって、SendDataSet メソッドの動作を検証します。usp_GetTwoBOMTestData は、Transact-SQL ストアド プロシージャ uspGetBillOfMaterials を 2 回実行し、usp_GetTwoBOMTestData ストアド プロシージャへのパラメータとして指定された 2 つの製品の部品表に対して再帰的にクエリを行います。データセットに設定されたデータは、SendDataSet 呼び出しにより結果セットとしてクライアントへ配信される前に、変更されるのが普通です。わかりやすくするために、このサンプルではデータを変更せずに返します。
インストール ディレクトリは、drive:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\SendDataSet\ です。
シナリオ
Jane は Adventure Works Cycles の開発者です。CLR ベースのストアド プロシージャを使用して、データセット内に情報を収集しました。そのデータセットに格納された情報をクライアント アプリケーションに返す必要があります。
言語
Transact-SQL、Visual C#、および Visual Basic。
機能
Send DataSet サンプルでは、SQL Server の次の機能を使用します。
アプリケーション エリア | 機能 |
---|---|
全体 |
CLR、メタデータ、データセット、ストアド プロシージャ、CTE |
前提条件
このサンプルを実行する前に、次のソフトウェアがインストールされていることを確認してください。
- Microsoft SQL Server 2005 または Microsoft SQL Server 2005 Express Edition (SQL Server Express)。SQL Server Express は、SQL Server 2005 Express Edition ドキュメントとサンプルの Web サイトから無償で入手できます。
- SQL Server 2005 に付属の AdventureWorks データベース。SQL Server デベロッパー Web サイトからも入手できます。
- SQL Server 2005 データベース エンジンのサンプル。これらのサンプルは SQL Server 2005 に含まれています。これらの最新バージョンは、SQL Server デベロッパー Web サイトからダウンロードできます。
- .NET Framework SDK 2.0 または Microsoft Visual Studio 2005。.NET Framework SDK は無料で入手できます。「.NET Framework SDK のインストール」を参照してください。
サンプルのビルド
強力な名前のキー ファイルをまだ作成していない場合は、次の指示に従ってキー ファイルを生成してください。
厳密な名前のキー ファイルを生成するには
Microsoft Visual Studio 2005 コマンド プロンプトを開きます。[スタート] メニューの [すべてのプログラム] をポイントし、[Microsoft .NET Framework SDK 2.0] をポイントします。次に、[SDK コマンド プロンプト] をクリックします。
-- または --
Microsoft .NET Framework コマンド プロンプトを開きます。[スタート] メニューの [すべてのプログラム] をポイントし、[Microsoft .NET Framework SDK 2.0] をポイントします。次に、[SDK コマンド プロンプト] をクリックします。
ディレクトリの移動コマンド (CD) を使用して、コマンド プロンプト ウィンドウの現在のディレクトリから、サンプルがインストールされているフォルダに移動します。
注 : サンプルが配置されているフォルダを調べるには、[スタート] ボタンをクリックし、[すべてのプログラム]、[Microsoft SQL Server]、[マニュアルとチュートリアル] の順にポイントして、[サンプル ディレクトリ] をクリックします。既定のインストール場所を使用している場合、サンプルは <system_drive>:\Program Files\Microsoft SQL Server\100\Samples にあります。 コマンド プロンプトで、次のコマンドを実行してキー ファイルを生成します。
sn -k SampleKey.snk
重要 : 厳密な名前のキー ペアの詳細については、MSDN の .NET Development Center にある「Security Briefs: Strong Names and Security in the .NET Framework」を参照してください。
Send DataSet サンプルをビルドするには
Visual Studio 2005 および提供されている Visual Studio ソリューションを使用するか、.NET Framework SDK 2.0 に含まれている Microsoft MSBuild を使用して、サンプルをコンパイルします。コマンド プロンプトで、次のようなコマンドを実行します。
msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\ SendDataSet.sln
AdventureWorks データベースがインストールされていることを確認します。
既定の場所に SQL Server データベース エンジン サンプルをインストールしなかった場合は、サンプルのインストール先が参照されるように、Scripts\InstallCS.sql スクリプトと Scripts\InstallVB.sql スクリプトの CREATE ASSEMBLY 部のパスを変更します。
使用している SQL Server インスタンスの管理者でない場合、インストールを完了するためには、CreateAssembly 権限が管理者から許可されている必要があります。
Visual C# プロジェクトと Visual Basic プロジェクトのどちらをコンパイルしたかに応じて、Microsoft SQL Server Management Studio でファイル scripts\installCS.sql または scripts\installVB.sql を開きます。ファイルに含まれているスクリプトを実行するか、コマンド プロンプト ウィンドウで次のようなコマンドを実行します。
sqlcmd -E -I -i Scripts\InstallCS.sql
サンプルの実行
Send DataSet サンプルを実行するには
Management Studio で scripts\test.sql ファイルを開き、ファイルに含まれているスクリプトを実行します。または、コマンド プロンプト ウィンドウで次のコマンドを実行します。
sqlcmd -E -I -i Scripts\test.sql
サンプルの削除
Send DataSet サンプルを削除するには
Management Studio で scripts\cleanup.sql ファイルを開き、ファイルに含まれているスクリプトを実行します。または、コマンド プロンプト ウィンドウで次のコマンドを実行します。
sqlcmd -E -I -i Scripts\cleanup.sql
コメント
このサンプルを正しく機能させるためには、SQL Server 2005 または SQL Server Express の CLR を有効にする必要があります。
サンプルは、演習目的で利用するためにのみ提供されています。サンプルを運用環境で使用することは想定されていないため、運用環境でのサンプルのテストは行われていません。Microsoft では、これらのサンプルに関する製品サポート サービスを提供していません。システム管理者の承認を得ることなく、サンプル アプリケーションやサンプル アセンブリを、運用中の SQL Server データベースやレポート サーバーに接続したり、これらのデータと共に使用することは避けてください。