【FileMaker】ExecuteSQL関数の使い方(1)

1.ExecuteSQL関数を使ってみる

使う場合と使わない場合のスクリプトの違いです

■検索画面

〇ExecuteSQL関数を使わない検索

〇ExecuteSQL関数を使う検索

ExecuteSQL ( "SELECT category FROM category WHERE ID_category = ?" ; "¶" ; "¶" ; main::ID_category_2) ExecuteSQL ( "SELECT name FROM goods WHERE ID_category = ?" ; "¶" ; "¶" ; main::ID_category_2)

使わない場合 26行 使う場合   2行

ExecuteSQL関数を使うとスクリプトが短くなります。

〇ExecuteSQL関数の書き方

ExecuteSQL ( ”
SELECT category        <= 取得する項目名(category )
FROM category           <= 検索するオカレンス名(category )
WHERE ID_category <= 検索する項目名(ID_category )
= ?” ; “¶” ; “¶” ;             <= 検索方法(一致検索)と項目や検索結果の区切り(改行)の指定
main::ID_category_2 <= 検索するデータの項目名(main::ID_category_2)
)

※複雑な処理もできますが、バグが出たときにデバックが大変です。弊社では必要最低限の検索のみ使っています。


〇ExecuteSQL関数をスクリプトで使わない理由

データベースの項目名を変えてみてください
【例:goodsをname_goods に変更する】

  • ExecuteSQL関数を使わない検索
    検索ができる
  • ExecuteSQL関数を使う検索
    検索ができなくなる

●結論

ExecuteSQL関数とデータベースの項目はリンクしていません。
そのため、項目名を変更するとExecuteSQL関数を使っているスクリプトをすべて変更が必要です。
データベースデザインレポートで使用場所を確認して、すべて手動で変更する・・・・
メンテナンス性は最悪になります。

メンテナンス性をよくする方法として(2.ExecuteSQL関数をカスタム関数にして使う)をはじめました。


目次

【FileMaker】ExecuteSQL関数の使い方

  1. ExecuteSQL関数を使ってみる
  2. ExecuteSQL関数をカスタム関数にして使う
  3. ExecuteSQL関数をレコードデータをまとめて持ってくる
  4. テーブルの計算式だけで検索して使う
  5. 日本語対応と繰り返し対応