Tips

EXECUTE IMMEDIATEで引用できるプロセス変数

日付2010/10/27
ID76179 (英語原文参照)
バージョンv11
プラットフォームMac/Win

SQLコマンドEXECUTE IMMEDIATEは, テキストで渡されたSQL文を実行時に評価するコマンドです。4DのEXECUTE FORMULAコマンドなどと同様, このコマンドに渡されるコードには, 4Dのプロセス変数などをテキストで引用することができます。

$statement_t:="SYNCHRONIZE LOCAL TABLE "+$tableDef_t
$statement_t:=$statement_t+" WITH "
$statement_t:=$statement_t+" REMOTE TABLE "+$tableDef_t
$statement_t:=$statement_t+" FOR REMOTE STAMP :remoteStamp_l,"
$statement_t:=$statement_t+" LOCAL STAMP :localStamp_l"
$statement_t:=$statement_t+" LOCAL OVER REMOTE"
$statement_t:=$statement_t+" LATEST REMOTE STAMP :latestRemoteStamp_l,"
$statement_t:=$statement_t+" LATEST LOCAL STAMP :latestLocalStamp_l;"

Begin SQL
   EXECUTE IMMEDIATE :$statement_t;
End SQL

実行時にプロセス変数remoteStamp_l, localStamp_l, latestRemoteStamp_l, latestLocalStamp_lが正しく宣言されていれば, このSQLはコンパイルモードでも正しく動作します。ただし, コンパイラは, テキストの中で引用されている変数をチェックすることはないので, コードに間違いがあったとしても, 実行するまでそれは判明しません。