- FM クライアント機に ODBC を入れて、SQL を実行スクリプトステップを使用する
- FM クライアント機に ODBC は入れず、ODBCはサーバにのみ入れ、サーバサイドスクリプトで SQL を実行スクリプトステップを使用する
1. のデメリットは、全てクライアントにODBCを入れる必要があり、保守が面倒なこと、
2. のデメリットは、サーバサイドスクリプト内はデバッガが使用できず、またクライアントで実行する場合と動作が異なることがあること、です。
また、「\"」のエスケープが面倒で醜いというのは両者に共通した欠点と思います。
さて、上記の2つの方法のデメリットを回避する方法として、サーバに ODBC/node.js と当方で開発した tpcsql.js を置き、FM クライアントから FMS に対して SQL を発行して CRUD する方法をご紹介します。
tpcsql.js を使った CRUD テスト方法
以下、環境構築の方法を記します。注:
- cURLを使用するため、FileMakerクライアント は Ver.16 以降が必須となります。
- FMSは Ver16 でのみ検証を行っています。
- FMS 16 の Admin Console で ODBC/JDBC を有効にします。
- FM 付属の FileMaker ODBC ドライバを、サーバにインストールします。
クライアントへのODBCのインストールは不要です。 - FMS サーバ環境に Node.js をインストールします。
- 上記のサイトより、tpcsql.js をダウンロードし、サーバ 上の任意の場所に配置します。
- tpcsql.js に付属の Readme.txt に従って、Node.js 関連パッケージ群をインストールします。
- コマンドプロンプト画面から、node tpcsql.js と入力し、Enter キーを押下します。
以下のようなメッセージが画面に表示されたら、クエリ待ち受け状態となります。
ここでは、Web サーバのデフォルトポート 80 で待ち受けしますが、すでに他の Web サーバが稼働中の場合は、tpcsql.js に記載されているポート番号を変更(例: 80→8080)し、再起動してください。 - 付属のサンプルファイル「TpcQueryTester10.fmp12」 をFMSに配置し、公開します。
FMクライアントからアクセスできるように、必要に応じて、ファイヤウォールの設定を変更します。 - FMクライアントを起動し、上記7で公開したTpcQueryTester10.fmp12 を開きます。
ログイン情報は tpcsql.js に付属のドキュメントを参照してください。 - [URI]フィールドの hostname の部分を FMS16 のホスト名、または IP アドレスに変更し、“Go”ボタンを押してみてください。
上記で、[odbcDriver]、[host]、[uid]、[pwd]、[database]フィールドは、FMS16 側から見た場合の設定をあらかじめ入力してありますので、そのまま “Go”で実行できます。 - 以下のようにクエリ結果が [result]フィールドに戻ってきたら成功です。
- Data テーブルには 1000 件分のテストデータがあらかじめ登録されています。
クエリ内容を変更することによって、CRUD 操作をお試しいただけます。
本稿では データベースは FileMaker Server を使用していますが、MySQL や SQL Server など、ODBC対応であれば他のデータベースでもここに記載した方法は使用できると思います。
tpcsql.jsの他のプラットフォームでの利用
当初、tpcsql.js は Raspberry Pi 等で iBeaconの情報を収集・加工し、リモートのデータベースをSQLで簡単にCRUDするという M2M な利用を意図して企画したのですが、「FMクライアントから使えたら便利かも?」と思い、公開することにしました。
もともと、FMのサーバサイドで「SQLを実行」がサポートされているので、「?」な方もいらっしゃるかと思いますが、「役にたったよ」という方が現れたらウレシイです。
尚、tpcsql.js のラズパイでの利用は、稿を改めてご紹介できればと思います。
もともと、FMのサーバサイドで「SQLを実行」がサポートされているので、「?」な方もいらっしゃるかと思いますが、「役にたったよ」という方が現れたらウレシイです。
尚、tpcsql.js のラズパイでの利用は、稿を改めてご紹介できればと思います。
(亀澤)
IoT/M2M関連リンク
- FileMaker 16 と iBeacon の適用モデルを考える 1 ― 美術館等での展示物案内と倉庫内での商品自動検索
- iBeacon の適用モデルを考える 2 ― 定位置ビーコン監視モデル ― 各商品にビーコンを取り付け、存否を監視する
- iBeacon の適用モデルを考える 3 ― 定位置ビーコン監視モデル(2) ― 各商品にビーコンを取り付け、Raspberry Pi により存否を監視する
- Androidを使用した多数移動体位置監視モデル ― 人、トラック、自動車などに Android を取り付け、その所在地を常時監視するモデル
- FMクライアントからサーバ上のODBC/node.js経由でデータベースをCRUDする ― IoT/M2M 環境でCRUDを担当する tpcsql.js のFileMaker クライアントでの利用