複数のDBMSで動作するように設定するには

Magic xpaでのハイレベルのデータ定義能力の一つは、複数のタイプのテーブルに対して同じデータソース定義を使用することができることです。例えば、MS-SQL Serverテーブルによって動作し、さらにOracleによって使用することのできる定義を持つことができます。

すべてのDBMSは独自の処理を行うため、いくつかの制限があります。また、入力されるユーザ定義は各データベースに対して同じであることを知っておく必要があります。

しかしMagic xpaは、より高いレベルでデータを定義したり、実行時にDBMS固有の機能を設定することを可能にするためのオプションを提供しています。

移行可能な項目を定義する

Screen18-18.gif

[カラム特性]の[デフォルト記憶形式]を「Yes」に設定すると、[記憶形式]特性は無視され、使用するDBMS固有のデータ形式が使用されます。例えば、数値型項目がある場合、あるDBMSは Integer と定義し、別のDBMSでは NUMBER や PACKED DECIMAL と定義されるかもしれません。

移行可能なWHERE句を定義する

Screen18-19.gif

WHERE句の構文は、DBMSによって異なる場合があります。例えば、特定の文字列から文字列を取得する場合、OracleはSubstrを使用し、MS-SQL ServerはSubstringを使用します。このため、両方で動作するWHERE句を作成することができません。

この問題は、[範囲/位置付]ダイアログ( タスク環境→範囲/位置付 )の[Magic SQL]([SQL Where句]タブ)に式を定義することで解決します。ここに定義する構文はMagic xpaの構文ですが、実行時に使用するDBMS用のSQL WHEREコマンドが作成されるようになります。

関連トピック:

タスクのデータビューに範囲を定義するには