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

第4回 InfoPathからSQL文を実行する

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

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

 InfoPathのデータ接続でストアド・プロシージャを実行するには、前回のDELETE文を書いたときと同じように、ダミーのSELECT文をSET NOCOUNT ON文とともに書けばよい。例えば先のテーブルに対して、商品コードを1000から9999まで連番で生成する「makeitemcode」という名前の、次のようなストアド・プロシージャがあったとする。これをInfoPathのフォームから、ボタンのクリックで実行できるようにしてみよう。

※makeitemcodeストアド・プロシージャを作成するクエリ

CREATE PROCEDURE makeitemcode
AS
DECLARE @myitemcode INT
SET @myitemcode = 1000
WHILE @myitemcode < 10000
BEGIN
INSERT INTO 商品管理
VALUES (CAST(@myitemcode AS char(4)),'','','','','')
SET @myitemcode = @myitemcode + 1
END

 このクエリをSQL Server上で実行し、makeitemcodeストアド・プロシージャを作成しておく。このストアド・プロシージャを実行するには、SQL Serverに対して次のクエリを実行すればよい。

EXECUTE makeitemcode

 InfoPathで、このmakeitemcodeストアド・プロシージャを実行するためには、新しくデータ接続を作成する。手順は前回の「3.InfoPathのデータ接続にDELETE文を記述する」と同じであり、次のようなステップを踏む。

ストアド・プロシージャを実行するためのデータ接続の作成
新しくデータ接続を作成する。
  [ツール]メニューの[データ接続]をクリックする。
  [追加]ボタンをクリックする。
  [データの受信]を選択する。
  [次へ]をクリックする。
  [データベース(Microsoft SQL ServerまたはMicrosoft Office Accessのみ)]を選択する。
  [次へ]をクリックする。
  [データベースの選択]をクリックする。
  メイン接続として作成したデータ・ファイルを選択する。
  [開く]をクリックする。
  [SQLの編集]ボタンをクリックする。

 生成しているSQL文はメイン接続のものだが、これを次のSQL文に書き換える。

set nocount on
select 'dummy'
EXECUTE makeitemcode

 SQL文を書き換えたら[SQLステートメントのテスト]をクリックしてSQL文に間違いがないことを確認し、[OK]ボタンをクリックする。

SQL文の書き換え
SQL文を先のリストのように書き換える。
  ウィザードが自動生成したSQL文。
  書き換えたSQL文。
  SQLステートメントのテストを行い、SQL文に間違いがないことを確かめる。
  SQL文に間違いがなければ[OK]ボタンをクリックする。

 ウィザードの最後では、データ接続の名前を分かりやすいものに変更する。この場合は[商品コードの生成]といった名前がよいだろう。また忘れてはならないことは、[フォームを開くとき自動的にデータを取得する]のチェック・ボックスを外すことである。チェックが入ったままだと、フォームを開くたびにSQL文がSQL Serverに発行され、ストアド・プロシージャが実行されてしまう。

ウィザードの完了
データ接続ウィザードを完了する。
  [商品コードの生成]という名前に書き換える。
  [フォームを開くとき自動的にデータを取得する]のチェック・ボックスを外す。
  [完了]ボタンをクリックしてウィザードを終了する。
  [商品コードの生成]データ接続ができていることを確認する。


 INDEX
  [Windowsシステム運用]InfoPath−SQL Server連携で構築するC/Sシステム
  第4回 InfoPathからSQL文を実行する
    1.DELETE文を記述したデータ接続を実行する
  2.ストアド・プロシージャを実行するデータ接続を作成する
    3.ストアド・プロシージャを実行するボタンを作成する

 運用


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間