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