はじめに
このリレー連載が始まった頃は、「FileMaker Proって、どんなデータベースなんだろうか?」と思っていた読者も多かったかと思いますが、そろそろFileMaker Proの全体像が見えてきたでしょうか。
最終回では、そんなFileMaker Proにバージョン9から追加された、SQLデータベースとFileMaker Proの連携機能を解説します。一連の連載を通してご覧いただくと、FileMaker Proで可能なシステム開発の幅を理解いただけると思います。
基礎知識
External SQL Source(ESS)とは
FileMaker Pro 9から、新技術「External SQL Source(ESS)」が追加されました。これは、FileMaker ProからODBCを介してリレーショナルデータベース(RDBMS)のテーブル操作を可能にする機能で、以前のバージョンで実現されていた、ODBCインポートやSQLステートメント実行機能よりも、ODBCを介したRDBMSとの連携という意味で、一歩も二歩も踏み込んだ機能になっています。
必要な環境
RDBMSが必要
ESSで連携可能なRDBMSとして、FileMaker社が提示しているのは下記の3種類です。
- Microsoft SQL Server 2000 / 2005
- MySQL 5.0 コミュニティエディション
- Oracle 9i、10g
このように、国内における企業の基幹システムやWebシステムで採用されている主要なRDBMSと連携可能になっています。国内のWebシステムではPostgreSQLも多く利用されていることから、PostgreSQLにも対応すると嬉しいですが、本執筆時点でその様な声がまだ聞こえて来てはいないのは少し残念です。
使用方法
利用者は1行もSQLステートメントを記述する必要がない
一般的な開発環境で、ODBCを使用してRDBMSと連携を行うような場合、開発者が意図したデータをRDBMSから得るためには、SQLステートメントを記述する必要がありますが、FileMaker ProのESSを使用すると、開発者も利用者もSQLステートメントを一切意識することなく、RDBMSからデータを得ることが可能です。FileMaker Proの利用者はいつも通りのFileMaker Proに対する操作を行うだけで、RDBMSへの検索や、レコードの追加や値の変更を行えます。
どのような仕組みになっているのか
例えば簡単な例では、RDBMSに検索を行うような場合、次のようなSQLステートメントを記述します。
SELECT emp_id,emp_name,emp_section,emp_mail FROM Emp_tbl WHERE emp_active = 1;
FileMaker ProでESSを使用してRDBMSからレコードを取り出す場合には、上記のようなSQLステートメントを記述することなく、単に「emp_acticve」フィールドに対して値が「1」のレコードを検索すれば、簡単に目的のレコードを取り出せます。
もちろん、RDBMSがFileMaker Proからの検索要求をそのまま理解することはできませんので、内部的にはFileMaker ProのESSが、RDBMSのテーブルへの処理が発生したときにSQLステートメントを自動生成して、ODBCデータソースに対して実行しています。
このような仕組みになっているため、FileMaker Proの利用者は、SQLに関する知識が少なくてもシームレスにRDBMS側のデータを使用できます。
設定:ODBCデータソースの設定
RDBMSとFileMaker Proを連携させるには、ODBCデータソースの設定が必要になります。このあたりの設定は、FileMaker Pro以外のツールでODBCを使用する場合と同じです。
ただし、Mac OSをクライアントとして利用することが前提となっている場合には、ODBCドライバが特定のメーカーが開発しているドライバに限定されてしまうことがありますので注意が必要です。