特集
SQL Server 2005の新機能「SQL CLR」(後編)

Visual Studio 2005でSQL CLRを実装してみる

中 博俊(Microsoft MVP 2005 - Visual C#)
2005/04/09
Page1 Page2 Page3 Page4

4. Visual StudioによるSQL CLRの開発

 さて本章では、Visual Studio 2005で前章と同様のサンプル・プログラム「Hello SQL CLR」を作成したい。ここではC#による開発例を示すが、VB.NETで作成しても開発方法に大した違いはない。

(1)Visual Studio 2005を使ってSQL CLRのプロジェクトを作成する

 まずは新しいプロジェクトを作成する。プロジェクト作成時の指定内容は、次の画面の説明を参照してほしい。

新しいプロジェクトの作成
Visual C#のSQL CLRプロジェクトを作成しているところ。
  [プロジェクトの種類]から「Visual C#」−「データベース」を選択する。
  [テンプレート]から「SQL Server プロジェクト」を選択する。
  [プロジェクト名]に「SqlServerProject1」(デフォルトのまま)を入力する。
  [場所]に「C:\compile」を入力する。
  [OK]ボタンをクリックする。

 この画面の設定により、「C:\compile」に、Visual C#のSQL CLRプロジェクトが作成される。

 次に、このSQL CLRがどのデータベースに接続するかなどを設定するための画面が表示される。ここでは次の画面のように設定を行う。設定する内容は、先ほどのsqlcmdツールで接続時にコマンドラインのパラメータで指定したものと同等だ。

データベース参照の追加
SQL CLRプログラムが、どのSQL Serverの、どのデータベースに接続するかなどを設定しているところ。
  サーバ名(=SQL Serverのインスタンス名)として「(local)」を指定する。
  「Windows NTの統合セキュリティを使用する」(=Windows統合認証)を選択する。
  データベース名として「atmarkit」を指定する。
  [OK]ボタンをクリックする。

 この画面では、同一マシン上(=local)にあるSQL Serverインスタンスの「atmarkit」というデータベースに、Windows統合認証で接続する設定が行われている。

 これでプロジェクトの作成(とデータベース接続のための初期設定)は完了だ。

 プロジェクトの作成が終わると、そのプロジェクトがVisual Studio 2005で開かれる。下の画面のように、[ソリューション エクスプローラ]ウィンドウを見ると、[参照設定]に「sqlaccess」がすでに設定されているのが分かる。

SQL CLRのプロジェクトが開いた状態
[ソリューション・エクスプローラ]ウィンドウを見ると、「sqlaccess」への参照がすでに設定されている。

(2)Visual Studio 2005によるSQL CLRプログラミング

 [ソリューション エクスプローラ]のプロジェクト名(本稿の例では「SqlServerProject1」)の上で右クリックすると、下の画面のようなメニューが開く。このメニューの中にある[追加]メニューの配下から[ユーザー定義の関数]や[ストアド プロシージャ]など、さまざまなSQL CLRを選択できるが、ここでは「ユーザー定義の関数」を選択しよう。

[ソリューション エクスプローラ]のプロジェクトの[追加]メニューを開いた状態
[ソリューション エクスプローラ]ウィンドウの「プロジェクト名」を右クリックしてコンテキスト・メニューを表示し、そのメニューから[追加]−[ユーザー定義の関数]を選択する。

 この手順により、次の画面のような[新しい項目の追加]ダイアログが開くので、すべてデフォルト設定のまま(ファイル名は「Function1.cs」となる)で[追加]ボタンをクリックする。

[新しい項目の追加]ダイアログ
この画面では、ファイルの種類と名前を指定して、プロジェクトにファイルを追加できる。ここではすべてデフォルトのままの設定で[追加]ボタンをクリックして、「Function1.cs」というファイルを追加しよう。

 これにより、「Function1.cs」というファイルがプロジェクトに追加される。そのファイルの初期コードは次の画面のようになっている。

[新しい項目の追加]ダイアログにより追加されたファイルの内容
[新しい項目の追加]ダイアログによりSQL CLRの関数を追加すると、このような内容の初期コードが生成される。

 この画面にある「Function1.cs」のコード内容を、前章で提示しているソース・コードと同じになるように修正していこう。具体的には、次の内容を修正する。

  • クラス名:「UserDefinedFunctions」→「SQLCLR」
  • メソッド名:「Function1」→「HelloSqlClr」
  • メソッドの戻り値:“Hello”→“Hello SQL CLR”

 これらの修正を実際に行ったのが、次の画面だ。

ソース・コードを修正したファイルの内容

 次に、これをビルドして実行してみよう。


 INDEX
  [特集]SQL Server 2005の新機能「SQL CLR」(前編)
  SQL Serverプログラミングを革新するSQL CLRとは?
     1.従来のSQLプログラミングについて
     2.SQLプログラミングを革新するSQL CLRとは?
     3.SQL CLRの特長とストアド・プロシージャとの使い分け
  [特集]SQL Server 2005の新機能「SQL CLR」(後編)
  Visual Studio 2005でSQL CLRを実装してみる
     1.SQL CLRプログラミングの種類
     2.SQL CLRでHello World!を作成してみる
   3.Visual StudioによるSQL CLRの開発
     4.SQL CLRプログラムの実行
 


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間