sql ディレクティブ

暗黙の SQL コードをカスタマイズする場合または完全に新規のコードを作成する場合に、sql ディレクティブを使用します。

暗黙の SQL コードと組み込み SQL コードの比較について詳しくは、SQL データ・アクセスを参照してください。

通常は with キーワードを使用して組み込み SQL コードを導入します。 execute 文は例外であり、with を使用しません。次に、sql キーワードを左中括弧とともに使用します (間にスペースは入れません)。 以下の例のように、組み込みコードは右中括弧で終了します。
get myCustomer with #sql{
  SELECT customer_name
  FROM Customer
  WHERE customer_number = :myCustomer.customerNumber };

先頭のコロン文字は、ホスト変数 (SQL をホストする言語 (この場合は EGL) で定義した変数) を示しています (例えば、:myCustomer.customerNumber など)。

暗黙の SQL コードを組み込みコードに変換し、その後、変更することができます。詳しくは、「EGL プログラマー・ガイド」を参照してください。

組み込み SQL 文は暗黙の SQL 文よりも優先されます。 以下に示すのは悪い例で、暗黙の (つまり呼び出し対象の) キー・フィールドが 3 つ競合しています。
get myCustomer usingKeys myCustomer.customerName with #sql{
  SELECT customer_name
  FROM Customer
  WHERE customer_number = :myOrders.customerNumber };
最初のキー・フィールドはレコードのプロトタイプ CustomerRecord に指定されています (myCustomer.customerNumber)。 usingKeys 文節は、組み込みコードも存在していない場合に、EGL が生成する暗黙の SQL コードの myCustomer.customerName でこのデフォルト・キーをオーバーライドします。その組み込みコードにより暗黙のコードがオーバーライドされ、データベースから読み取る実際のキーとして myOrders.CustomerNumber が使用されます。

フィードバック