DB SQL Where句

プログラム > 範囲ウィンドウ > SQL Where句

DB SQL Where句は、SQLテーブルがメインソースに設定されている物理トランザクションモードのタスクに使用できます。遅延およびネスト遅延トランザクションモードのタスクには、この機能は使用できません。

DB SQL機能の目的は、プログラマーがSQLタスクを使用しなくても、Magicで自動的に生成されたWhere句のほかに、SQL専用のWhere句も使用できるようにすることや、Magicで生成されたWhere句を表示できるようにすることにあります。

ここでは、Magicのカラムを使用した、SQL構文によって範囲を記述します。記述された範囲条件は、Magic SQL Where句で定義された範囲条件に追加されます。

[DB SQL]特性でダブルクリックすると[項目一覧]が表示されます。ここには、[DB SQL]特性で使用できる全てのデータ項目が表示されます。

[DB SQL]は、DB SQL Where句が記述されているフリーテキストを参照します。[DB SQL]領域には、2種類の文字列が記述できます。詳細は次のとおりです。

項目番号(A、B、Cなど)の先頭に':'記号を付けて記述

このカラムがメインソースまたは結合テーブルである場合は、そのDBカラム名に置き換わります。その他の場合は、データの型に応じた値に置き換わります。文字型カラムの場合は、末尾の空白が削除され、引用符が付加されます。

項目番号(A、B、Cなど)の先頭に'@'記号を付けて記述

メインソースまたは結合テーブルの実データでなく、型が文字型の場合はこの方法を使用します。この場合、カラムが値に置き換わりますが、引用符は付加されません。

Magicは、カラムをその内容で置き換える場合、カラムの型と記憶域がチェックされます。文字型の場合は、必要に応じて引用符が付加されます。文字型カラムに引用符が付加されないように、記述するプログラムの全ての種類を有効にするには、@記号を接頭辞としてカラムに追加する必要があります。

例えば、次の場合を想定します。

「Employee. jobname」というDB名の実データ「A」と、「Vjobname」という名前で、実行時の値が「AB」の文字型カラム「B」があるとします。この時、DB SQLに以下のようにと記述します。

 :A like 'B%'

この場合、表示は以下のようになります。

 Employee. jobname like'B%'

 (テーブル名はリンク結合が発生した場合のみ追加されます)

実行時の変換結果は、以下のようになります。

  jobname like 'B% '

また、DB SQLに以下のように記述します。

  :A like :B

この場合、表示は以下のようになります。

  Employee. jobname like [ "Vjobname"]

 (テーブル名はリンク結合が発生した場合のみ追加されます)

実行時の変換結果は、以下のようになります。

   jobname like 'AB'

次に、「Vjobname」という記述(名前)で、実行時の値が「like」の変数項目「C」があったとします。DB SQLに以下のように記述します。

   :A @:C :B

:この場合、以下のように置き換わります。

   jobname [Voperation] [" Vjobname"]

実行時の変換結果は、以下のようになります。

   jobname like'AB'

参照