ExecuteSQLe

指定したテーブルオカレンスに対する SQL クエリーステートメントを FileMaker Pro ファイル内で実行し、エラーが発生した場合は「?」とエラーメッセージを返します。

構文 

ExecuteSQLe (SQL クエリー ; フィールド区切り ; 行区切り {; 引数...})

引数 

ExecuteSQL 関数を参照してください。

戻り値のデータタイプ 

テキスト

起点バージョン 

21.1.1

説明 

ExecuteSQLe は ExecuteSQL 関数と同じですが、クエリー解析または実行時にエラーが発生した場合、ExecuteSQLe は次の形式でエラーを返します:

? ERROR: FQL<xxxx>/(<行>:<オフセット>): <メッセージ>

各要素の意味は次のとおりです:

  • <xxxx> は数字の FileMaker クエリー言語エラーコードで、 FileMaker エラーコードとは関係ありません。

  • <行> および <オフセット>SQL クエリー引数でエラーが始まる文字の行番号とオフセットです。

  • <メッセージ> はエラーの説明です。

一度に返されるエラーは 1 つのみです。複数のエラーが存在する場合、現在のエラーが解決された後に別のエラーが返されます。

例 1 

ExecuteSQL の例 1 から始めて、計算式を変更して ExecuteSQLe 関数を使用します。次に、詳細なエラーメッセージを確認するために「Title」という名前の存在しないフィールドを参照するようにクエリーを変更します:

コピー
ExecuteSQLe ("SELECT Title FROM Employees WHERE EmpID = 1" ; "" ; "")

次のエラーを返します:

? ERROR: FQL0007/(1:7): The column named "Title" does not exist in any table in the column reference's scope.

例 2 

例 1 のクエリーの結果に変数を設定してから、結果が ? で始まるかどうかを確認します。始まる場合、残りの結果 (エラーメッセージ) を表示してスクリプトを終了します。

コピー
変数を設定 [$result ; 値: ExecuteSQLe ("SELECT Title FROM Employees WHERE EmpID = 1" ; "" ; "")]
If [Left ($result ; 1) = "?"]
    カスタムダイアログを表示 [Right ($result ; Length ($result) - 2)]
    現在のスクリプト終了 [テキスト結果: "エラー"]
End If