トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション
8. パラメータ付きストアドプロシージャを作成してみよう

前回ビュー表を学習したとき、ビュー表はレコード抽出条件などのパラメータを外部から動的に与えることはできないとお話ししました。そして動的にパラメータを与える場合は、ストアドプロシージャが必要であることに触れました。

ストアドプロシージャを作成する大きな目的の1つに、レコード検索条件を外部から与えて自由なレコード選択を行なうことがあります。

前回の第3節以降を思い出しながら、パラメータ付きストアドプロシージャを作成してみましょう。

最初に、Accessプロジェクトの見本データベースであるNortwindCSデータベースに接続します。

接続を行なったら、
『クエリ』−『新規作成』
で、新しいクエリを作成します。

図24のように、ストアドプロシージャのデザインを選択しましょう。


図24 ストアドプロシージャのデザインを選択する

ストアドプロシージャの作成に必要となるテーブルの選択画面が表示されます(図25)。前回の図6と同じように、商品区分テーブルと商品テーブルを選択します。また表示する列も同じにしましょう(図26)。


図25 テーブルの選択画面


図26 表示する列の定義

次にレコード抽出条件を定義します。前回のビュー表の作成では、生産中止の商品情報を表示しました(前回の図6と図12参照)。
今回は、
生産中または生産中止の条件入力
在庫個数の条件入力
をパラメータとします。


図27 レコード抽出パラメータ条件の入力

図27のように、アットマークで始まる特別な名前をパラメータ変数として、抽出条件欄に入力します。
また在庫個数のレコード検索条件は
@min個以上@max個以下
とするため、検索条件入力のための在庫列をもう1つ増やしてください。

パラメータを定義したら、ウィンドウを閉じてストアドプロシージャに名前を付けて保存します(図28)。


図28 ストアドプロシージャの名前

以上の操作によって、パラメータ付きストアドプロシージャの作成ができました。

念のためそのストアドプロシージャのプログラムを確認します。

図27の画面で、
[表示]メニューの[SQLビュー]
を実行してください。
図29のようなストアドプロシージャのソースプログラムが表示されます。


図29 SQLビューで確認したパラメータ付きストアドプロシージャのプログラム

パラメータ付きストアドプロシージャの特徴は、ストアドプロシージャの名前とASの間に、パラメータ宣言が行なわれています。

さてこのパラメータ付きストアドプロシージャのクエリを実行してみましょう。いつものように「クエリを開く」操作です。

図30のように、@flagに値を入力するように促されます。まず生産中止を表す数字の0を入力します。


図30 @flagのパラメータの入力

次に図31のように、@minに値を入力するように促されますので、在庫個数の最小値を入力します。ここでは10個以上20個以下を検索しますので、10と入力します。


図31 @minのパラメータの入力

次に図32のように、@maxに値を入力するように促されますので、20と入力します。


図32 @maxのパラメータの入力

検索パラメータに値を入力して実行すると、図33のように、検索条件に合ったレコードが抽出されます。


図33 検索パラメータ条件に合った、レコードの表示

図33のデータシートは参照専用でレコードの修正を行なうことはできません。しかしAccessプロジェクトの連結フォーム機能によって、ストアドプロシージャが返すレコードセットを修正することができるようになります。この機能こそ長年Visual Basicに苦汁を飲まされ続けられたAccessクライアントサーバー開発者にとって、待ち焦がれていた画期的な機能なのです。この機能があるがために、Accessプロジェクトを使ってくださいと言えるのです。

次回最終回は、ストアドプロシージャに連結したフォームの作成を解説したいと思います。


<< 前へ次へ >>
◆PAGE LINK  |  |  |  |  |  |  |  |  |  

PASSJメールニュース 著作権ついて プライバシーポリシー リンクポリシー お問い合わせ
(C) 2005 Professional Association for SQL Server Japan. All rights reserved.