リファレンス > スクリプトステップリファレンス > その他のスクリプトステップ > SQL を実行
 

SQL を実行

ODBC データソース上で SQL ステートメントを実行します。

参照 

オプション 

[ダイアログあり] により、このスクリプトステップを実行したときに [SQL の指定] ダイアログボックス、[ODBC データソースを選択] ダイアログボックス、およびパスワードを入力するためのダイアログボックスを表示するかどうかが指定されます。

[ODBC データソース] は、[ODBC データソースを選択] ダイアログボックスを表示します。一覧からデータソースを選択して [OK] をクリックして有効なユーザ名とパスワードを入力します。

メモ  [ダイアログあり] を [オフ] に設定した場合は、[ユーザ名とパスワードを保存] を選択してください。選択しないとユーザがデータソースにアクセスできない場合があります。

[計算済みの SQL テキスト:] では、SQL クエリーとして使用する計算式を指定します。

[SQL テキスト] を選択すると、SQL クエリーのステートメントを手動で入力できます。

互換性 

 

製品 

サポート 

FileMaker Pro Advanced 

はい 

FileMaker Go 

いいえ 

FileMaker WebDirect 

一部 

FileMaker Server 

一部 

FileMaker Cloud for AWS 

一部 

FileMaker Data API 

一部 

カスタム Web 公開 

一部 

Runtime ソリューション 

いいえ 

起点 

FileMaker Pro 6.0 以前のバージョン

説明 

このスクリプトステップを使用して、ODBC SQL インターフェースを使用して ODBC データソースのデータを管理します。この方法では、FileMaker Pro Advanced と ODBC データソースの連携をより細かく管理できます。スクリプトには複数の [SQL を実行] スクリプトステップを追加できます。

重要  エラー処理の詳細については、取得関数を参照してください。

Get (最終外部エラー詳細) 関数では、ODBC から返された最新のエラー状態が返されます。

Get (最終エラー) 関数では、最後に発生した FileMaker Pro Advanced のエラーが返されます。

メモ 

SQL ステートメントは、最大長 256K 文字 (512KB) に制限されています。

サーバーサイドスクリプト、FileMaker WebDirect、FileMaker Data API、およびカスタム Web 公開では、このスクリプトは [ダイアログあり] オプションが [オフ] に設定されている場合にのみサポートされます。

[SQL を実行] スクリプトステップを使用して Unicode 文字列を含む ODBC データを送信する場合、ODBC ドライバで Unicode をサポートしている必要があります。サポートしていない場合は結果が矛盾します。

ODBC インポート、[SQL を実行] スクリプトステップ、および外部 SQL データソースは、Runtime ソリューションではサポートされていません。

Microsoft SQL Server は Unicode および Unicode 以外のフィールドの両方のタイプをサポートするため、すべての Unicode 文字列に接頭語として大文字の「N」(SQL-92 標準で「National」の頭文字) を付ける必要があります。接頭語がないと英数字以外の文字を含む Unicode 文字列が Microsoft SQL Server に渡されたときに、Microsoft SQL Server コードページ内に存在しないデータを失う場合があります。

[SQL を実行] スクリプトステップでは、FileMaker データソースではなく ODBC データソースに対して SQL ステートメントを実行します。SQL SELECT ステートメントのみを使用して FileMaker データソース内のテーブルをクエリーするには、ExecuteSQL 関数を使用してください。

例 1 

「従業員」テーブルのレコードを外部 ODBC データソースで更新します。

SQL を実行 [ダイアログあり: オン ; SQL テキスト: INSERT INTO "従業員" ("従業員 ID", "姓", "名", "役職", "勤務先電話", "給与") VALUES (100, N'野中', N'修平', N'ソフトウェアエンジニア', '987-7000', 100000) UPDATE "従業員" SET "役職" = N'マネージャ' WHERE "従業員 ID" = 103 DELETE FROM "従業員" WHERE "従業員 ID" = 103]

例 2 

SQL ステートメントを計算して実行し、外部 ODBC データソースの「顧客」テーブルのレコードを更新します。

SQL を実行 [ダイアログあり: オン ; 計算済みの SQL テキスト: "INSERT INTO "顧客" ("会社", "姓") VALUES (" & 顧客::会社 & "," & "N'" & 顧客::姓 & "')"]

関連項目 

スクリプトステップリファレンス (名前順)

スクリプトステップリファレンス (種類順)