2010年03月09日

「外部RDBMSに持って行くテーブルのクリーンアップ」への補足

先に「外部RDBMSに持って行くテーブルのクリーンアップ」の記事を書きましたが、ひとつとても大切なポイントが抜けていましたので、補足させていただきます。

FileMaker では、リレーション定義で使用する参照先あるいは参照元のフィールドに、改行区切りで複数の値をセットしておき、"=" で結合することによって、改行で区切られた「いずれかの値」に一致したレコードを抽出するというテクニックが使われることがあります。

これらのテーブルが MySQL に移行した場合、ODBC ドライバ経由は、例えば
SELECT id FROM table_b WHERE field_b = 'value_in_field_a';
のような SQLステートメントを発行します。すなわち、改行コードを含めたフィールド全体の値が完全一致したレコードのみが抽出されることになり、これまでの FileMaker 上でのリレーションとは異なる結果となります。

こういったリレーション定義をしている場合は、外部 SQL データソースへ移行する前に、リレーション定義を複数のフィールドで構成するように分解する、等の準備が必要となります。

[03-11-2010 追記]
posted by Kojima at 06:31| Comment(0) | TrackBack(0) | External SQL Data Source | このブログの読者になる | 更新情報をチェックする

2010年01月30日

外部SQLデータソース上のテーブルにレコードをインポートする

FileMaker ファイルのリレーションシップ・グラフに外部SQLデータソース上のテーブルのシャドウテーブルができたら、いよいよそのシャドウテーブルに、元となった FileMaker テーブルからレコードをインポートします。

データが頻繁に更新されるようなテーブルの場合、ここでインポートを行なっても、後の作業の後、改めてデータのインポートが必要になるかもしれません。

それではなぜこの段階でインポートしなければならないのかというと、これにより、
(1) 必要なフィールドはすべて用意されているか
(2) 各フィールドのデータ型が一致しているか
(3) FileMakerテーブルにイリーガルなデータが含まれていないか
等を確認することができるからです。

(1) は言うまでもありませんね。(2) は特に数字型やテキスト型のフィールドに対して適切な型が MySQL テーブル上で定義されているかの確認になります。想定外の値が実際には存在したりするものです。

続きを読む
posted by Kojima at 04:28| Comment(0) | TrackBack(0) | External SQL Data Source | このブログの読者になる | 更新情報をチェックする

2010年01月29日

FileMaker ファイルに外部SQLデータソースのテーブルを追加する

本ブログでは最近は External SQL Data Source というカテゴリで、FileMaker の ESS 機能を使って、FileMaker テーブルを MySQL に移動する手順について書いています。

前回の「RDBMS上でのテーブル定義」のステップが、一連の手順の中で最も注意が必要なのは、読んでいただければお分かりかと思います。ここが正しくなされていないと、今回以降の手順で問題が生じてきます。

さて、MySQL 上にテーブルの定義が完了したら、FileMaker からそれら外部SQLデータソースにアクセスできるように設定する必要があります。

FileMaker Server を利用できる場合は、ODBC ドライバをサーバにだけインストールして、各 FileMaker Pro クライアントからはサーバ経由で外部SQLデータソースにアクセすることができます。以下、FIleMaker Server を使用する前提で説明します。

サーバでホストされるデータベースを、外部SQLデータソースを利用するように変更するには、その作業はその ODBC ドライバがインストールされているサーバ機上で行なうか、そのデータベースファイルをサーバーで公開された状態で、リモートから作業を行なう必要があります。

また、ODBCドライバの設定等の手順は、ジェネコムの高岡幸生さんのご著書「FileMaker Pro 開発運用講座」Chapter 10 に詳しく解説されていますので、ご参照下さい。

ここでは、MySQL上に作成したテーブル(群)に対するODBCドライバの設定が済んでいるものとして、その先を説明します。
 
続きを読む
posted by Kojima at 08:10| Comment(0) | TrackBack(0) | External SQL Data Source | このブログの読者になる | 更新情報をチェックする

2010年01月23日

RDBMS上でのテーブル定義

さて、外部SQLデータソースに移行する FileMaker テーブルの準備が完了したら、今度はそれに対応するテーブルを RDBMS (ここでは MySQL) 上に作成します。

FileMaker テーブルの各フィールドのデータ型に合わせて、MySQL テーブルの各カラムのデータ型を決めます。特に Text と Number については、そこに格納するデータに応じて、適切なデータ型を決めてやる必要があります。Date については FileMaker が日付のフォーマットを自動変換してくれます。

各テーブルには必ずプライマリキーを定義し、インデックスを作成しておきます。また、FileMaker 上でリレーションされるそれぞれのフィールドに対応するカラム=すなわち外部キーにも、必ずインデックスを作成するようにしましょう。レコード数にもよりますが、プライマリキーと外部キーへのインデックスを怠ると、FileMaker からのアクセス・パフォーマンスが明らかに低下します。



続きを読む
posted by Kojima at 10:26| Comment(0) | TrackBack(0) | External SQL Data Source | このブログの読者になる | 更新情報をチェックする

2009年12月16日

外部RDBMSに持って行くテーブルのクリーンアップ

FileMaker 上のテーブルを MySQL 等、FileMaker が 外部 SQL データソース機能でサポートしている RDBMS に持って行くにあたり、RDBMS で非互換となる箇所の修正が必要になります。

具体的には、
(1) 計算フィールド
(2) グローバルフィールド
(3) 集計フィールド
(4) フィールド名に使われている日本語や、大文字、空白等
が問題となります。

(1)-(3) はそれらを使わずに済むようデータベースを改造するか、外部RDBMSに移行しない別テーブルに移動して動作するようにするしかありません。

続きを読む
posted by Kojima at 08:10| Comment(0) | TrackBack(1) | External SQL Data Source | このブログの読者になる | 更新情報をチェックする

2009年10月28日

Mac OS X 用 ODBC ドライバ

まず最初に考えたのが、MySQL ではなく PostgreSQL を使えないか、ということ。実際に試してみましたが、やはり PostgreSQL は FIleMaker の外部 SQL データソース (ESS) としては使えませんでした。

こちらでは他のデータベースは皆 PostgreSQL を使っているのでそれに揃えたかったのですが、残念です。

さて、FileMaker Server には Actual Technologies の ODBC ドライバが付属してきますが、これは評価版で、3レコードまでしか読み込んでくれません。これでは開発用にも使えないので、正規のライセンスを取得する必要があります。

続きを読む
posted by Kojima at 08:45| Comment(0) | TrackBack(0) | External SQL Data Source | このブログの読者になる | 更新情報をチェックする

ESSを使ってテーブルをMySQLに移動

ごぶさたしています。FMS8 を使ってカスタムwebシステムを組んで以来、そちらはメンテナンスオンリーで、その後はずっと Perl & PostgreSQL のシステム開発を担当しておりました。こちらのブログに書くようなトピックもなく、FileMaker 界隈の話題からはちょっと縁遠くなってしまいました。

ここにきて、FileMaker 上のデータを他のシステムと連携させるニーズが高まってきました。いままでは FX.php によるカスタムwebを通して、データを JSON 等で他のシステムに返すような形でやってきましたが、いかんせん、レスポンスタイムが遅いため、本格的になんとかしよう、という機運が高まってきました。

FileMaker のシステムを、丸ごと PostgreSQL & Ruby/Perl で書き直す、という案もありましたが、FileMaker で使い続けたいという要望もあり、作業のボリュームからしてもこれは却下されました。

次の案として上がったのが、FIleMaker の中で他のシステムから必要とされるデータを、RDBMS 上に移動し、他のシステムからはそちらを参照する。FileMakerシステムからは、外部SQLデータソース (ESS) 機能を使って、従来同様の使い勝手を提供する、というものです。続きを読む
posted by Kojima at 08:30| Comment(0) | TrackBack(0) | External SQL Data Source | このブログの読者になる | 更新情報をチェックする

2008年11月15日

FileMaker Server カスタムWebテクニック 改訂版

FileMaker Server カスタムWebテクニック改訂版
松尾 篤
ビー・エヌ・エヌ新社
売り上げランキング: 30806

著者の松尾 篤さんより「FileMaker Server カスタムWebテクニック 改訂版」をお送りいただきました。海外までの送料もご負担いただいて恐縮です。どうもありがとうございました。

この新著は以前にご紹介した「FileMaker Server カスタムWebテクニック」の改訂版で、2008年10月に出版されました。

FileMaker 7 ベースだった前著の内容を FIleMaker Server 9 に基づいたものに一新されています。さらにサーバのセットアップについても詳しい手順がたくさんのスクリーンショットとともに追加されました。前の記事でも書きましたが、web 公開を前提としたシステムでは、(1) FileMaker データベースサーバ、(2) Web 公開エンジン、(3) Web サーバ、の3つのレイヤーがあり、その佼成についてよく理解していないと、設定がなかなか大変です。「改訂版」ではここもカバーされていますので、XML/XSLTによるカスタムWebシステム開発にはこれ1冊でOK、といったところです。

前著に引き続きこの「改訂版」でも、FIleMaker Server の持つ XML/XSLT によるカスタムWeb公開に絞った内容となっています。XML/XSLT によるカスタムWeb開発は、PHPによる開発手法が正式にサポートされた現在では、あまり注目されない方法かも知れません。しかし、インスタントWeb公開では機能が限定され過ぎている、だが、PHPですべて開発するのも大変、といった場合には今でも有効な選択肢だと思います。

また FileMaker API for PHP や FX.php で開発する場合においても、それらの内部では FIleMaker の XML 公開機能が使われており、その特徴を理解することによって、効果的な開発を行なったり、デバッグに役立ったりします。

私自身、FX.php にて開発を行なった際、なかなか思ったように動かないところがあったりすると、前著をひもといて XML 公開のレベルでどのように動作しているのかを調べたりしました。(松尾さんにもいろいろお世話になりました!)

FileMaker Server 7 で XML/XSLT によるカスタムWeb開発手法が提供されて以来4年以上になりますが、これほど詳しく解説された書籍は、英語でもいまだにないように思います。ご自身の豊富な経験に基づく知見を惜しみなく公開していただいた著者に、心から感謝を申し上げます。続きを読む
posted by Kojima at 10:05| Comment(0) | TrackBack(0) | 参考書籍 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。