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

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

3.フォームの作成と動作の確認

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

ストアド・プロシージャを実行するためのボタンの作成

 最後に、ストアド・プロシージャを実行するためのボタンをフォーム上に作成しよう。まず作業ウィンドウを[コントロール]に変え、[コントロールの挿入]から[ボタン]をクリックするかフォーム上にドラッグし、ボタンを作成する。

ボタンの作成
ストアド・プロシージャを実行するためのボタンをフォーム上に作成する。
  コントロール作業ウィンドウから「ボタン」をクリックするかフォーム上にドラッグ&ドロップする。
  ボタンが作成される。

 次に、このボタンをクリックしたときの動作を設定する。作成したボタンをダブルクリックするか、または右クリックしてポップアップ・メニューから[プロパティ]を選択し、ボタンのプロパティを表示させる。

 次にボタンのプロパティで[動作規則]のボタンをクリックし、動作規則の[追加]、[動作の追加]ボタンを順にクリックしていく。

動作の追加
ボタンの動作を設定する。
  [動作規則]ボタンをクリックする。
  [追加]ボタンをクリックする。
  [動作の追加]ボタンをクリックする。

 ここで設定しなければならない動作は2つある。1つは、フォームの繰り返しグループのフィールドに入力された商品番号の開始番号と終了番号の値を一時フィールドに送信する動作、もう1つはストアド・プロシージャを実行する動作である。

 最初の動作は、「一時テーブル接続」のデータ接続に対して[データの送信]を行うことである。そのため[動作]の設定は[データ接続を使用して送信する]、[データ接続]は[一時テーブル接続]と設定する。

一時テーブルへデータを送信する動作の設定
データを送信するための設定を行う。
  [動作]のドロップダウン・リストから[データ接続を使用して送信する]を選択する。
  [データ接続]が[一時テーブル接続]となっていることを確認する。
  [OK]ボタンをクリックする。

 最初の動作が設定できたら、もう一度[動作の追加]ボタンをクリックしてストアド・プロシージャを実行する動作を作成する。[動作]の設定は[データ接続を使用してクエリを送信する]、[データ接続]は[商品番号の作成]を設定する。

ストアド・プロシージャを実行するための動作の設定
ストアド・プロシージャを実行する動作を追加する。
  一時テーブルへデータを送信する動作ができたことを確認する。
  [動作の追加]ボタンをクリックする。
  [動作]のドロップダウン・リストから[データ接続を使用してクエリを送信する]を選択する。
  [データ接続]のドロップダウン・リストから[商品番号の作成]を選択する。
  [OK]ボタンをクリックする。

 2つの動作規則が設定できたら、分かりやすい名前を付け、プロパティの設定を完了する。最後にボタンのラベルに「商品番号の作成」と付けてボタンの設定を完了する。

ボタンの設定を完了する
「商品番号の作成」と名付けて、ボタンの設定を完了する。
  動作規則に分かりやすい名前を付ける。
  設定した動作を確認する。
  [OK]ボタンをクリックする。
  設定した動作規則を確認する。
  [OK]ボタンをクリックする。
  ボタンのラベルを変更する。
  [OK]ボタンをクリックする。

フォームのプレビューと動作の確認

 これでフォームの設定は終わった。[フォームのプレビュー]ボタンをクリックして動作を確かめよう。

完成したフォームとフォームのプレビュー
[フォームのプレビュー]ボタンをクリックしてフォームをプレビューする。
  これをクリックする。

 フォームをプレビューしたら、[開始番号]のフィールドに作成したい商品番号の最初の番号を入力し、[終了番号]のフィールドに作成したい商品番号の最後より1大きい番号を入力し、[商品番号の作成]ボタンをクリックする。

商品番号作成のテスト
開始番号と終了番号を入力し、ボタンをクリックして、動作を確認する。
  [開始番号]と[終了番号]に番号を入力する
  [商品番号の作成]ボタンをクリックする

 [商品番号の作成]ボタンをクリックすると、まず[開始番号]と[終了番号]が一時テーブルに送信される。そしてストアド・プロシージャが実行され、一時テーブルのデータをパラメータとして読み込み、商品番号が作成される。

Microsoft SQL Server Management Studio Expressによるテーブルの確認
一時テーブル「商品番号作成」に開始番号と終了番号が登録され、テーブル「商品管理」に商品番号が生成されていることが分かる。
  一時テーブルに開始番号7000と終了番号7020が記録されている。
  商品管理テーブルに商品番号が生成した結果。

最後に

 これまで説明してきたように、InfoPathは単なるXMLデータ編集ツールというだけでなく、Microsoft SQL Serverを接続先としたクライアント・アプリケーションを作成する優れたアプリケーションである。またInfoPathでは個々のデータを編集するフォームを作成することは得意だが、データの一括削除や一括作成などバッチ処理的な作業を行うフォームは苦手である。しかしSQL Serverのストアド・プロシージャを作成し、InfoPathのフォームからボタンをクリックすればデータの一括操作を実行することができる。これらの手法を活用すれば、極めて容易にクライアント/サーバ・システムを構築することができる。

 最後に、筆者がこれらInfoPathの活用法についてのアイデアを最初に考えたとき、まだ筆者にはSQL Serverの知識が少なく、ストアド・プロシージャをInfoPathから思うように実行できなかった。そのとき、SQL PASSJの理事でSQL ServerのMicrosoft MVPである小川貢氏よりSQL Serverに関するご教授をいただくことで、この記事をまとめることができた。ここにあらためて感謝いたします。End of Article

 
 

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


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間