2015年1月27日火曜日

FileMaker(ファイルメーカー)の変数について

データのテーブル間の移動


FileMaker Proであるテーブルから、別のテーブルへデータを移動する場合、どのような方法で移動されていますか?

おそらく、Excelなどにエクスポートして、レイアウトを移動して、インポートというのが一般的でしょうか?

リレーションを使って、ID同士か何かでテーブル同士を紐づけして、ルックアップで移動。

ExecuteSQL関数で、データを引っ張ってくる。

など、いろいろあるかと思います。

変数に格納


私はよく変数に格納し、複数行のデータがあれば改行区切りのリストとして格納して、別のテーブルのレイアウトへ移動して、一行一行展開なんてことをやったります。

スクリプトの行数としてはフィールドが増えると増えてしまいますが、エクスポート→インポートよりもトラブルが少なかったりするので、使っています。

Let関数を使えば、その行数も減らすことは可能でしょう。

しかし、よく考えてみると「変数って、メモリに保存されるはず」と思い立ち、ちょっと変数を使うことでどのくらいメモリ消費量が増えるかを調べてみました。

状況としては、7ケタの数字のデータを改行区切りにして、約12万件分をグローバル変数に格納。

すると下記のようにメモリ使用量が増えました。

格納前↓


格納後↓






4MB程度増えている感じです。

今の時代、4MBなんて大したことないですが、これがテキストデータだったりするともっと増えるのでしょう。

PCであれば問題になることはないでしょうが、もしかしたら、iPad、iPhoneであれば、データ量が大きければ問題が起きるかもしれません。

iPad、iPhoneでそんなに大量なデータを扱ったりすることはたぶんないのでしょうが。

FileMaker13からはFileMaker Goからでもサーバ上でスクリプトを動かせるので、それをうまく活用すれば特に問題はないでしょう。