[Windowsシステム運用]

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

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

第1回 InfoPathをSQL Serverに接続する

1.InfoPathからSQL Serverのストアド・プロシージャを呼び出す

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

 本連載では、SQL Serverのストアド・プロシージャをOffice InfoPathから利用する方法について解説する。InfoPathは電子フォーム・ソリューションの開発で利用されるアプリケーションであるが、SQL Serverを呼び出してデータを処理することもできる。Visual BasicやC#などでコードを記述する必要もない。今回は第1回として、InfoPathからSQL Serverに接続してクエリを行うための、基本的な設定方法について解説する。第2回はInfoPathのデータ接続を編集して高度なクエリを実行する方法、第3回はSQL Serverのストアド・プロシージャをInfoPathから実行する方法、第4回はストアド・プロシージャに引数を渡す方法について、それぞれ解説する。

InfoPathとデータベース

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

 Microsoft Office InfoPath 2003(以下InfoPath)は、電子フォームをベースにしたアプリケーションの作成ツールとして知られているが、本来は、XMLドキュメントの作成ツールとして作られたソフトウェアである。近年XMLがデータ・フォーマットとして注目を浴びているのは、その可搬性にある。電子メールやWebサービスといった「疎結合」の環境においては、データをやりとりするときに、データの構造や型といったデータ・スキーマが埋め込めるXMLを使うと、データの送受信における確実性を高めることができるからだ。しかしXMLドキュメントを作成するためには、定められた書法に従ってデータの構造や型を記述しなければならず、少々やっかいである。そこでXMLドキュメントを作成、編集するためのツールとして、InfoPathが登場した。

 XMLを使ってデータをやりとりする場合、受け渡されたデータは確実に利用することができるが、データが届いたかどうかを確認するためには別の方法を取らなければならない。XMLはデータのフォーマットを規定しているだけで、やりとりの方法や管理の方法については関与していないからだ。例えば従業員が出先からXMLドキュメントを電子メールに添付して会社に送ったとする。しかしそれが確かに届いたかどうかの保証はない。またXMLドキュメントは物理的にはテキスト・ドキュメントにすぎないので、データの散逸という事態も起こり得る。古いデータと新しいデータの整合性も、何らかの方法で管理しなければならないだろう。

XMLドキュメントの受け渡し
XMLドキュメントによるデータの受け渡しでは、データが届いたことを確認する方法を考えなければならない。またデータ(ファイル)が散逸したり、古いデータと新しいデータの整合を取るのが難しい。内容を更新するたびにXMLドキュメントを送信すると、ファイルが複数になってしまうからだ。

 このように可搬性の高いXMLドキュメントを使うことは、データの受け渡しの場面では有効であるが、データを統一的、継続的に管理するとなると、やはりデータベース・システムと組み合わせて使うのがよいだろう。データベースに保存しておけば、常に最新のバージョンを取り出すことができるし、保存するだけで最新版に更新できるからだ。

 InfoPathは本来XMLドキュメント作成ツールとして考えられたものだが、データベースに接続する機能も持っている。標準でMicrosoft SQL Server(SQL Server 2000/2005。以下、これらをまとめてSQL Serverと呼ぶ)やMicrosoft Access(Access 2000/2002/2003)と接続できるのである。そこでデータベースとしてSQL Serverを使い、クライアントとしてInfoPathを使うと、極めて簡単に、しかも高度な入力支援機能を利用した、本格的なクライアント/サーバ・システムを構築することができる。

 一般にクライアント/サーバ・システムの構築といえば、サーバにはデータベース・サーバを導入し、クライアントはVisual BasicやC#などを使って開発することが多い。だがInfoPathとSQL Serverを組み合わせて使えば、システム開発を外注するといった本格的な体制を取らなくても、企業のIT管理者レベルでも比較的容易に構築することができ、自由にカスタマイズすることが可能になる。

SQL ServerにInfoPathで接続する
SQL ServerとInfoPathを組み合わせると、XMLデータをサーバで統一的に管理することができる。

 しかしInfoPathはXMLデータを個々に操作するのは得意だが、あるテーブルから特定のデータを一括削除したり、一括生成するといった、データを管理する操作はできない。そこでこのようなデータの一括操作を行うには、あらかじめSQL Serverにストアド・プロシージャを作っておき、それをInfoPathから呼び出す(コントロールする)とよい。これならば任意のデータ管理操作が実現できる。

InfoPathからストアド・プロシージャを実行する
SQL Serverにストアド・プロシージャを実装しておき、InfoPathフォームのボタンをクリックしてそれを呼び出して実行する。これならばInfoPathを利用していても、データの一括処理を実現することができる。

 InfoPathからSQL Serverのストアド・プロシージャを実行する方法はあまり知られていないが、この手法を使えば、Visual BasicやC#を使ってフォームにコードを書く必要はなく、InfoPathのデータ接続を編集することで実現できる。この記事ではInfoPathのデータ接続の編集から、SQL Serverのストアド・プロシージャを実行する方法を解説し、InfoPathでデータベースを活用する手法を広げる。この記事が、企業のIT管理者が自力でクライアント/サーバ・システムを作るための一助となれば幸いである。なお、この解説では、SQL Serverのデータベース作成方法やストアド・プロシージャの作り方、Active Directoryなどのユーザー管理に関する解説は行わないので、ご了承いただきたい。

 この記事は、以下の環境で動作を確認している。

  • Windows XP SP2
  • Office InfoPath 2003
  • SQL Server 2005 Express Edition

 これ以外にも、Windows 2000、InfoPath 2007(ベータ2)、SQL Server 2000でも同じように利用できる。

 

 INDEX
  [Windowsシステム運用]InfoPath−SQL Server連携で構築するC/Sシステム
  第1回 InfoPathをSQL Serverに接続する
  1.InfoPathからSQL Serverのストアド・プロシージャを呼び出す
    2.SQL Serverに接続するためのデータ接続を作成する
    3.データ接続の確認とフォームでの利用
    4.ドロップダウン・リストでセカンダリ・データソースを利用する
 
 運用


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間