[Windowsシステム運用]

InfoPath−SQL Server連携で構築するC/Sシステム

―― ストアド・プロシージャをInfoPathから実行。IT Proでも自力構築できるC/Sシステム入門 ――

第2回 InfoPathのデータ接続を編集する

1.InfoPathのデータ接続の編集

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

 本連載では、SQL Serverのストアド・プロシージャをOffice InfoPathから利用する方法について解説する。InfoPathは電子フォーム・ソリューションの開発で利用されるアプリケーションであるが、SQL Serverを呼び出してデータを処理することもできる。Visual BasicやC#などでコードを記述する必要もない。前回は、InfoPathをSQL Serverに接続するための、基本的な操作方法について解説した。SQL Serverに接続するための設定のことを「データ接続」といい、データ接続をInfoPathのフォーム上に配置して、データを入力したり、検索したりする。またドロップダウン・リストボックスの項目もデータベース上に配置することにより、フォームを変更することなく、項目を編集することができる。今回はデータ接続のプロパティを変更して、より高度なSQLのクエリを実行する方法を解説する。


Index
InfoPathをSQL Serverに接続する
InfoPathのデータ接続を編集する
データ接続におけるSQL文を編集する
InfoPathからSQL文を実行する
ストアド・プロシージャで引数を使う(最終回)

 InfoPathをSQL Serverに接続するとき、新しいフォームの作成で「データ接続から新規作成」するか、既存のフォームにデータ接続を「セカンダリ・データソース」として追加することにより、データ接続ウィザードに従ってデータ接続を作成することができる。このときデータ接続ウィザードは自動的にSQL文を作成してくれるのだが、これを編集して、より複雑なクエリを作成することもできる。例えばSQL Server上に次のような構造のテーブルがあったとして、これをセカンダリ・データソースとして利用することを考えてみよう。

列名 データ型
商品コード varchar(10)、主キー(プライマリー・キー)に設定
商品名 varchar(50)
作者 varchar(50)
発行所 varchar(50)
分類 varchar(20)
利用するサンプル・データベース
このようなフィールドを持つデータベース(テーブル名「商品管理」)を用意する。

 InfoPathからこのテーブルをセカンダリ・データソースとして利用するためには、まずメイン接続(メイン・データソース)が作成されている必要がある。すでにメイン接続が設定されているフォームを開いて[ツール]メニューの[データ接続]をクリックし、[追加]ボタンをクリックしてデータ接続ウィザードを開始しよう。データ接続のSQLを編集するには、データ接続ウィザードの後半、データソース構造を確認するウィンドウで[SQLの編集]ボタンをクリックする。

 あるいは、すでに作成されているデータ接続を編集したいときには、メニュー・バーから[ツール]メニューの[データ接続]をクリックして[データ接続]ウィンドウを開き、編集したいデータソースを選択して[変更]ボタンをクリックする。するとデータ接続ウィザードのデータソース構造を確認する画面になるので[SQLの編集]ボタンをクリックする。

[データ接続]ウィンドウ
ウィザードで作成されたデータ接続のSQLを編集することができる。
  編集したいデータソースを選択する。
  [変更]ボタンをクリックする。
  データ接続ウィザードで[SQLの編集]ボタンをクリックする。

 「商品管理」テーブルに接続したデータソースを見ると、次のようなSQL文を確認できる。

select "商品コード","商品名","作者","発行所","分類" from "dbo"."商品管理" as "商品管理"

[SQLの編集]ウィンドウ
データ接続ウィザードで[SQLの編集]ボタンをクリックすると、作成されたSQL文を確認し、編集することができる。
  生成されたSQL文。

 この[SQLの編集]ウィンドウで直接SQL文を編集し、データ接続として利用することができる。つまりSQLの知識があってデータベースのテーブル構造が分かっていれば、ここでSQL文を編集し、必要なデータを適切な形で取得することができるのである。例えば例に挙げたデータ接続で、「分類」によって並べ替えをしてデータを取得したいとしよう。並べ替えてデータを取得するには、「order by」を用いて次のようにする。

select "商品コード","商品名","作者","発行所","分類" from "dbo"."商品管理" as "商品管理" order by "分類"

※赤字部分は編集して付け加えた部分

SQLの編集ウィンドウ
データ接続ウィザードで作成されたSQL文を確認し、編集することができる。ここでは「分類」フィールドで並べ替えるため「order by "分類"」を書き加えた。
  この部分を追加した。
  これをクリックすると、正しいクエリを実行できるかどうかをチェックできる。

 SQLを編集したとき、そのSQL文で正しいクエリを実行できるかどうかを[SQLステートメントのテスト]ボタンでチェックできる。SQL文が間違いなければ次のようなメッセージが表示される。

SQLのステートメントのテスト結果
編集したSQL文に誤りがなければ、このメッセージが表示される。
  テスト結果は成功。
 

 INDEX
  [Windowsシステム運用]InfoPath−SQL Server連携で構築するC/Sシステム
  第2回 InfoPathのデータ接続を編集する
  1.InfoPathのデータ接続の編集
    2.データソースのデータの並べ替え順序を変更する
    3.メイン・データソースのデータをリストボックス項目として利用する
    4.セカンダリ・データ接続を編集し、distinct句を利用する
    5.ユーザー名や日付、時刻を取得する
    6.SQL Serverから取得したデータの利用
 
 運用


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間