Magic SQL式

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

DB SQL Where句は、遅延トランザクションで実行されるタスクには使用できません。遅延トランザクションにSQL Where句を使用するためには、[Magic SQL式]で定義します。

この範囲は、1つの点を除き、既存のDB SQL Where句と変わりません。異なる点は、この範囲の定義にMagicの式のサブセットが使用されるという点です(既存のDB SQL Where句にはフリー形式のテキストが使用されます)。Magic エンジンでSQLに変換できる式だけを含めることができます。

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

AはEmployee.BirthDateというDB名の実カラムだとします。ここで[Magic SQL式]をA = Date()と記述すると、[Where句の全体表示]領域には次のように表示されます。

Employee.BirthDate = Date()

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

ここでは、DB専用の関数ではなく、MagicのDate関数が使用されていることに注意してください。

この関数は、Oracleデータベースの場合、実行モードで次のように変換されます。

TO_Date(Employee.BirthDate, 'DD-MON-YY') = TO_DATE(SYSDATE, 'DD-MON-YY')

MS-SQL Serverの場合は、次のように変換されます。

CAST(CONVERT(CHAR, Employee.BirthDate,112) AS DATETIME) =CAST(CONVERT(CHAR, GETDATE(),112) AS DATETIME)

2つの異なるDBに対し、同じタスクが式のプログラムを変更せずに実行されています。このように、Magicでは、データベースごとに、[Magic SQL式]が適切なSQLのWHERE句に変換されます。

参照