[Windowsシステム運用]
InfoPath−SQL Server連携で構築するC/Sシステム

第5回 ストアド・プロシージャで引数を使う

2.ストアド・プロシージャを実行するデータ接続の作成

兵庫県立西宮香風高等学校システム管理課長
Microsoft MVP for InfoPath
松本 吉生
2007/08/08

 次にストアド・プロシージャを実行するデータ接続を作成する。データ接続を作成するには、[ツール]メニューから[データ接続]をクリックする。

ストアド・プロシージャを実行するデータ接続の作成
[ツール]-[データ接続]でデータ接続を作成する。
  これを選択する。

 [データ接続]ウィンドウが表示され、フォームの作成時に作った「一時テーブル接続」ができていることが分かる。ストアド・プロシージャを実行するデータ接続を作成するために[追加]ボタンをクリックする。

[データ接続]の追加
新しいデータ接続を追加する。
  フォーム作成時に作成した「一時テーブル接続」がある。
  [追加]ボタンをクリックする。

 データ接続の次の画面では、データを送信するのか受信するのかを選択する。これまで述べたように、ストアド・プロシージャの実行はデータベースに対するクエリを行うので、[データの受信]を選択する。

データの送信と受信の選択
ストアド・プロシージャを実行させるには、[データの受信]を選択する。
  [データの受信]を選択する。
  [次へ]ボタンをクリックする。

 次のウィンドウではデータをどこへ受信するかを選択する。ここでは[データベース(Microsoft SQL ServerまたはMicrosoft Office Accessのみ)]を選択する。

データの受信先の選択
データの受信先を設定する。
  [データベース(Microsoft SQL ServerまたはMicrosoft Office Accessのみ)]を選択する。
  [次へ]ボタンをクリックする。

 次のウィンドウでは[データベースの選択]をクリックし、すでに作成しているデータベースを表示する。ここで作成するデータ接続にはストアド・プロシージャを実行するクエリを記述したいのだが、取りあえず先に作った「商品番号作成」を選択し、[開く]ボタンをクリックする。すると「商品番号作成」テーブルのフィールドが表示されるので[SQLの編集]ボタンをクリックする。

データベースの選択
すでに作成しているデータベースを開き、SQL文を編集する。
  [データベースの選択]ボタンをクリックする。
  「商品番号作成」を選択する。
  [開く]ボタンをクリックする。
  [SQLの編集]ボタンをクリックする。
  ウィザードで生成されたSQL文が書かれている。

 ここで生成されたSQL文は次のようなものである。

select "開始番号","終了番号" from "dbo"."商品番号作成" as "商品番号作成"

 これを次のように書き換える。

set nocount on
select 'dummy'
EXECUTE makeitemcodenew

 1行目の「set nocount on」はSQL Serverが処理行数の結果を返さないようにするための方法、2行目の「select 'dummy'」は、InfoPathに対してデータ接続をSELECT文であると理解させるためのダミー文、3行目の「EXECUTE makeitemcodenew」はストアド・プロシージャを実行する文である。これらの詳細については前回までの記事を読んでほしい。

SQL文を編集する
ストアド・プロシージャを実行するように、SQL文を編集する。
  SQL文を書き換える。
  [OK]ボタンをクリックする。

 ここで[OK]ボタンをクリックしたとき、「入力された SQL ステートメントはツリー ビューで表示できません。続行しますか?」というアラート・メッセージが表示されるが、これは無視してよい。また次のウィンドウでも「SQL ステートメントはツリー ビューとして表示できません。」と表示されているが、そのまま続けてよい。これらのアラートは、SQL文をストアド・プロシージャを実行するEXECUTE文に変更したために表示されるものなので、無視しても問題ない。

 
SQL文の書き換えに伴って表示される警告メッセージ
SQL文を書き換えると、このようなダイアログが表示されるが、これらは無視してもよい。
  [はい]をクリックして次へ進む。
  「ツリー ビューとして表示できません。」と表示されているが、問題ない。
  [次へ]ボタンをクリックする。
  「安全であるかどうかを判断できません。」とあるが[はい]をクリックして構わない。

 データ接続ウィザードの最後では、データ接続に分かりやすい名前を付ける。ここでは「商品番号の作成」としておこう。また[フォームを開くとき自動的にデータを取得する]のチェック・ボックスは必ずオフにしておく。そうでないとフォームを開いたとき、このデータ接続によって自動的にストアド・プロシージャが実行されてしまうからだ。

データ接続に名前を付ける
作成したデータ接続に名前を付けて保存する。
  名前を「商品番号の作成」とする。
  このチェック・ボックスはオフにしておく。さもないと、フォームを開いたとき、このデータ接続によって自動的にストアド・プロシージャが実行されてしまう。
  [完了]ボタンをクリックする。

 「商品番号の作成」データ接続ができたことを確認し、ウィザードを終了する。

データ接続の作成の完了
作成されたデータ接続を確認する。
  「商品番号の作成」データ接続ができたことを確認する。
  [閉じる]ボタンをクリックする。
 

 INDEX
  [Windowsシステム運用]InfoPath−SQL Server連携で構築するC/Sシステム
  第5回 ストアド・プロシージャで引数を使う
    1.ストアド・プロシージャへ引数を渡す方法
  2.ストアド・プロシージャを実行するデータ接続の作成
    3.フォームの作成と動作の確認
 
 運用


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間