ステートメント

「ステートメント」フィールドに、SQL ステートメントを入力するか貼り付けます。既に SQL ステートメントが「ステートメント」フィールドに入っていれば、 (その SQL ステートメントが SQL ウィザードで 作成されたものであっても) 編集できます。

AME は、SQL ステートメントの形式の妥当性を検査しません。形式が無効である場合、マクロ・ランタイムが SQLQuery アクションを実行するときに ランタイム・エラーが発生します。

SQL ステートメントは、複数行にまたがって書き込むことも、1 行に書き込むこともできます。図 1 および 図 2 は、同じ SQL ステートメントが、複数行にわたって書き込まれた場合と 1 行に書き込まれた場合を示します。どちらも正しい方法です。
図 1. 複数行にまたがって書き込まれた SQL ステートメント
SELECT
   *
FROM
   SQLTEST.EX01
WHERE
   (
      ( SQLTEST.EX01.DESCRIPT is not null )
   )
図 2. 1 行に書き込まれた同じ SQL ステートメント
SELECT * FROM SQLTEST.EX01 WHERE((SQLTEST.EX01.DESCRIPT is not null))
拡張マクロ形式を使用している場合、SQL ステートメントを単一引用符で 囲まなければならないこと、また特殊文字の規則に従わなければならないことに注意してください。下記の図 3 および 図 4 は、 基本マクロ形式用と拡張マクロ形式用の同じ SQL ステートメントを示しています。
図 3. 基本マクロ形式で作成された SQL ステートメント
select * from hodtest.ex01 where
      ((hodtest.ex01.descript='Edit Products'))
図 4. 拡張マクロ形式用の同じ SQL ステートメント
'select * from hodtest.ex01 where
      ((hodtest.ex01.descript=\'Edit Products\'))'
予約語 (select など) や、データベース名およびフィールド (hodtest.ex01.descript など) には大文字でも小文字でも使用できますが、マッチング・ストリング ('Edit Products' など) には大/小文字をそのとおりに使用する必要があります。したがって、図 5 の 2 つの SQL ステートメントは同等です。
図 5. 同等の大文字および小文字の例
select * from hodtest.ex01 where
      ((hodtest.ex01.descript='Edit Products'))
SELECT * FROM HODTEST.EX01 WHERE
      ((HODTEST.EX01.DESCRIPT='Edit Products'))