ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Microsoft TechEd 2010 ライトニングトーク「InfoPathとともに使うSQLServerの様々な機能」フォロー – 03

leave a comment »

データに対してまとまった処理を行うためにSQL Serverにストアドプロシージャを作ります。ではInfoPathからストアドプロシージャを実行する方法があるでしょうか。InfoPathのデータ接続はSQL文を自由に書けるので、ストアドプロシージャの実行も可能なように思えます。データ接続を編集すればいいはずです。まずSQL Serverにストアドプロシージャを作りましょう。
 
(slide.15 SQL Serverに作ったストアドプロシージャの例)
 
———————————————————
create procedure テストプロシージャ
as
update テスト set 氏名 = ‘松本 吉生’ where 学年 = 2
———————————————————
 
上のcreate文で生成するストアドプロシージャは、「テスト」テーブルのデータのうち、学年が2年のデータの氏名を全部「松本 吉生」に変更するストアドプロシージャです。InfoPathからこのストアドプロシージャを実行できるようにデータ接続を作りましょう。データ接続ウィザードによってInfoPathで新しいデータ接続を作り、データ接続ウィザードの最終場面で、SQLの編集によってストアドプロシージャを実行するSQL文に書き換えるのです。
 


(slide.16 データ接続ウィザード1)


(slide.17 データ接続ウィザード2)


(slide.18 データ接続ウィザード3)


(slide.19 データ接続ウィザード4)


(slide.20 データ接続ウィザード5)

上のスライド20のステップでは、とりあえず適当なデータ接続またはテーブルを選んでおきます。


(slide.21 データ接続ウィザード6)

とりあえず仮のデータ接続ができました。では「SQLの編集」ボタンをクリックしてSQL文を書き換えましょう。


(slide.22 データ接続ウィザードの最後でSQLの編集を行う)

「SQLの編集」ボタンをクリックすると、ウィザードで自動的に生成したSQL文が表示されます。これをストアドプロシージャを実行するSQL文に書き換えます。書き換えた後、SQL文に誤りはないか、実行できるか、をチェックするために「SQLステートメントのテスト」ボタンで調べます。


(slide.23 データ接続を書き換えるSQL文)

ここで書き換えるSQL文は上のスライド23のようなものです。ストアドプロシージャを実行するにはexecute文だけでよいのですが、InfoPathのデータ接続はselect文以外のものを書くと、InfoPathがエラーと判断してしまいます。そこでまずset nocount onコマンドを書き、ダミーのselect文を書き、そのうえでexecute文を書くようにするのです。


(slide.24 InfoPathフォームにボタンを作りストアドプロシージャを実行するデータ接続を実行する1)

ストアドプロシージャを実行するexecute文を書いたデータ接続ができたら、フォームにボタンを作ります。ボタンのプロパティで「動作規則」をクリックします。


(slide.25 InfoPathフォームにボタンを作りストアドプロシージャを実行するデータ接続を実行する2)

ボタンのプロパティで「動作」としてexecute文を書いたデータ接続を使用してクエリを送信する、とします。クエリを送信するとデータ接続に書いたexecute文がSQL Serverに渡され、ストアドプロシージャが実行するようになります。

Written by Yoshio Matsumoto

2010年9月16日 @ 8:40 PM

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。