FileMakerとOracleやMySQL、PSQLといったデータベースは違う世界に生きているので、その架け橋としてODBCという通訳さんが必要というところまで話したと思います。
突然ですが、PSQLの場合は、実は通訳さんが二人必要です。
イメージとしてはこんな感じ。
ODBCに加えて、Actual ESS Adapterというものを使わないと接続できません。
ひとまず、やりたいことは以下のように、FileMakerのリレーションシップグラフに、PSQLのテーブルを追加することです。
これをやるためにインストールが必要なものをまとめてみました。
環境はWindows7(64bit版)です。
・PostgreSQL 9.4.8-1-windows-x64
→PSQLのテーブルを作らないといけないので、PSQLそのものが不可欠。
・psqlodbc_09_03_0400
→通訳その1。
・Actual ESS Adapter win64
→通訳その2。
・FileMaker Pro 15
→14以前だと無理です。
・A5:SQL Mk-2
→SQL実行環境。なくてもいいですが、PSQLのデータベースを直接操作する際に便利。
ちなみに、FileMaker以外はフリーです。
上記の環境をインストールしたら、まずODBC接続のためのアカウントのようなもの(DSNといいます)を設定します。
コントロールパネル→システムとセキュリティ→管理ツールに、データソース(ODBC)というのがありますので、ここから設定します。
PSQL-ODBCのDSNはこんな感じで。
Actual ESS AdapterのDSNはこんな感じで。
DSNの設定が終わったら、FileMakerを起動して、テーブルと、送り付けたいレコードを作りましょう。
超適当ですが、こんなもんでいいですかね。
このレコードをPSQLのほうに送りたいので、受け皿となるPSQLのテーブルも作っておきましょう。
PSQL付属のSQL実行環境が使いにくいので、A5:SQL Mk-2というフリーソフトを使っています。
テーブルを作るときのコマンド「create table」で、FileMakerで作ったテーブルと同じ形式のテーブル(sample_psql)を作っています。
selectでテーブルの形を見た結果が、下の画面に表示されています。
データは1件も入ってませんが、これから、ここにFileMakerで作ったデータが放り込まれていくわけです。
それでは、先ほどのFileMakerのファイルのリレーションシップグラフに、sample_psqlを追加してみます。
テーブルの追加→データソース:ODBCデータソースの追加→Actual ESS Adapterを選択→sample_psqlを選択→idにチェックしてOK。
斜体のテーブルが現れればOKです。
あとは、sampleテーブルからsample_psqlにレコードをインポートするだけです。
インポート先に、先ほどリレーションシップグラフに追加したPSQLのテーブルを指定します。
このスクリプトをボタンにでも仕掛けておきます。
レコードが21件あることを確認してから、ボタンを押してみます。
手ごたえはまったくないですが、SQL実行環境でselect文を唱えて、確認してみましょう。
21件、入ってました。
ボタンを押しまくるとどんどん同じデータが入っていくので、一度入れたデータは送信しないように、フラグをつけるなどしたほうがいいかもしれません。
ちなみに、別のテーブルで試してみた結果。
データ件数が多いと、インポートに少し時間がかかるくらいで、結果としては問題ないみたいです。
こんなふうに、PSQLにデータが入ってしまえば、SQLを使ってデータ分析……とかできると思います。
データ登録はFileMakerで、データ管理と分析はPSQLで、という感じでしょうか。
今回は同じPC内でのデータの受け渡しということで、実用的にはあんまり意味がないですが……
もしPSQLデータベースが別PCで、しかも地理的に離れた所にある場合でも、同じようなことができるとしたら?
たとえば、各支店のFileMakerのPOSデータを、本社のPSQLデータベースに集めて分析、みたいなこともできると思います。
終わり。