連載:実践で役立つ業務アプリ開発のヒント第1回 データベースとADO.NETの機能を適切に活用するえムナウ(児玉宏之)(Microsoft MVP Visual Developer - Visual C# JAN 2005 - DEC 2007) 2007/06/08 |
|
|
●開発ヒント2:ストアド・プロシージャの作成
ストアド・プロシージャはどうしても利用しなければならない技術というわけではない。だが、SQL Serverの速度と効率性を高めるうえでは欠かせない技術である。従って筆者はできるだけこれを利用することをお勧めする。
なお、VS 2005におけるストアド・プロシージャ活用の基礎について学ぶには「連載:Visual Studio 2005でいってみようDBプログラミング 第8回 Let's Master ストアド・プロシージャ!(前編)」および「同(後編)」をご一読いただきたい。以下ではストアド・プロシージャを理解しているものとして話を進める。
VS 2005でテーブルアダプタを構成する際には、SELECT/INSERT/UPDATE/DELETE命令を実行するストアド・プロシージャを選択可能である。そこで、先ほどのユーザーViewに対するこれらのストアド・プロシージャを作成し、そこからテーブルアダプタを構成することにしよう(テーブルアダプタについては「連載:Visual Studio 2005によるWindowsデータベース・プログラミング 第3回 テーブルアダプタの基礎」を参照してほしい)。
まずはストアド・プロシージャを作成する。これには、[サーバー エクスプローラ]に表示されたストアド・プロシージャの項目を右クリックして[新しいストアド プロシージャの追加]をクリックすればよい。
続いて、先ほどのユーザーViewに対してSELECT/INSERT/UPDATE/DELETE命令を発行するストアド・プロシージャを、以下のような内容で作成する。なおストアド・プロシージャの名前は、本稿ではSELECT/INSERT/UPDATE/DELETE命令の順に「ユーザー一覧」「ユーザー追加」「ユーザー更新」「ユーザー削除」とした。
|
|
ユーザーViewに対してSELECT命令を発行するストアド・プロシージャ「ユーザー一覧」 |
|
|
ユーザーViewに対してINSERT命令を発行するストアド・プロシージャ「ユーザー追加」 |
|
|
ユーザーViewに対してUPDATE命令を発行するストアド・プロシージャ「ユーザー更新」 |
|
|
ユーザーViewに対してDELETE命令を発行するストアド・プロシージャ「ユーザー削除」 |
本稿のストアド・プロシージャを作成するためのSQLスクリプトは、以下のリンクからダウンロードできる。
以上のストアド・プロシージャを作成すると、[サーバー エクスプローラ]の内容は次のようになる。
[サーバー エクスプローラ]に表示されたストアド・プロシージャ |
次に、作成したストアド・プロシージャでテーブルアダプタを構成する。
具体的には、まずプロジェクトに「データセット(.xsdファイル)」を追加する(本稿では「ユーザーDataSet.xsd」というファイル名にした)。編集画面にデータセット・デザイナが表示されるので、その上で右クリックして[追加]−「TableAdapter」を選択する。[TableAdapter 構成ウィザード]が表示されるので、適切なデータベース(本稿では「Sample」)を選択して、[既存のストアド プロシージャを使用]を選び、以下の画面のように、先ほど作成したストアド・プロシージャをそれぞれ設定すればよい。これにより、ユーザー・テーブルの一覧(表示)/追加/更新/削除の一連の動作が可能になる。
[TableAdapter 構成ウィザード]におけるストアド・プロシージャの設定 |
4つの各コンボボックスで適切なストアド・プロシージャを選択し、[次へ]ボタンをクリックする。次のページで、(本稿の例では[DataTable を返す]のチェックを外して)[完了]ボタンをクリックする。 |
なお、「Visual Studio 2005によるWindowsデータベース・プログラミング」では、[サーバー エクスプローラ]からテーブルをドラッグ&ドロップしてデータテーブルを作成しているが、その場合はストアド・プロシージャではなくテーブルアダプタ内に文字列でSELECT/INSERT/UPDATE/DELETE命令の各SQL文が作成される。
ここでは、追加されたデータセットの名前は「ユーザー」に、テーブルアダプタの名前は「ユーザーTableAdapter」とした(※ファイル名は前述したように「ユーザーDataSet.xsd」)。名前の変更は、データセット・デザイナでタイトル部分をクリックすれば行える。
さらに、必要であればテーブルアダプタにクエリを追加する。本稿では次回以降の説明で使えるように、IDからユーザーを1件取得する「ユーザー取得」のためのFillByKeysメソッドと、姓/名/ユーザー名の入力されたものからユーザーを検索する「ユーザー検索」のためのFillBySearchConditionsメソッドをクエリとして追加した。
実際にこれらのクエリを追加するには、データセット・デザイナに表示された「ユーザーTableAdapter」を右クリックして[クエリの追加]を実行する。これにより[TableAdapter クエリの構成ウィザード]が表示されるので、まず[新しいストアド プロシージャの作成]を、次に[複数行を返す SELECT]を選び、適切なSQL文を入力する。最後に、[新しいストアド プロシージャの名前]を入力し(「ユーザー取得」や「ユーザー検索」)、さらに[メソッド名]を入力し(「FillByKeys」や「FillBySearchConditions」)、最後に[DataTable を返す]のチェックを外して[完了]ボタンをクリックすればよい。それぞれのSQL文は以下のとおりだ。
|
|
「ユーザー取得」FillByKeysメソッドのSQL文 |
|
|
「ユーザー検索」FillBySearchConditionsメソッドのSQL文 |
以上の作業により、Sampleデータベースに「ユーザー取得」と「ユーザー検索」というストアド・プロシージャが新規に追加される。
INDEX | ||
実践で役立つ業務アプリ開発のヒント | ||
第1回 データベースとADO.NETの機能を適切に活用する | ||
1.開発ヒント1:画面や印刷イメージに合致するビューの作成 | ||
2.開発ヒント2:ストアド・プロシージャの作成 | ||
3.開発ヒント3:テーブルアダプタでのメソッドの作成 | ||
「実践で役立つ業務アプリ開発のヒント」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|
- - PR -