データベースの列を更新または挿入する場合には、ソースの状態 (欠落しているか、空であるか、nil であるか) に応じて異なる動作を定義できます。
スキーマ・モデルでオプションとして定義されている変換を接続することによってデータベース列にデータを挿入または更新する場合には、ソース入力の取り得る状態 (欠落、空、または Nil) に対して動作を検討しておくことができます。 動作は、デフォルトにすることもできますし、データベース・ポリシーを有効にしてカスタマイズすることもできます。
表 1 は、データベース・ポリシーが有効にされていない場合のソース状態と動作を示しています。
表 2 と表 3 は、データベース・ポリシーを有効にし、ソース状態をチェックして特定のアクションを取るように構成した場合の動作を示しています。
ソース状態 | 定義 | 動作 |
---|---|---|
ソースが欠落している状態 | 入力文書にソース・エレメントが含まれていません。 | データベース・サーバーに送られる SQL 文で列が渡されません。
結果は、データベース内のターゲット列の定義によって決まります。
|
ソースが空である状態 | 入力文書にはソース・エレメントが含まれていますが、そのソースが空です。 | ブローカーは、ソース・エレメントに関する getValue によって返された値を当該の列のパラメーター値としてデータベース宛ての SQL 文に渡します。 例えば、ストリング型のエレメントは空のストリング値を返すことになるため、ターゲット・データベース列は空のストリング「"」に設定されます。 |
ソースが Nil である状態 | 入力文書には予期されたソースが含まれていますが、そのソースが nil です。 | getValue によって返される値は NULL に設定されます。 |
データベース列にデータを挿入する場合、ソース・エレメントから 1 つの値をマッピングする各変換についてデータベース・ポリシーを有効にできます。 データベース・ポリシーを設定する際には、入力ソースの各状態 (欠落、空、または Nil) について以下のいずれかのアクションを選択できます。
ソースの状態別のアクション | 動作 |
---|---|
データベース操作から列を除外します | 当該の列に関するデータベース・デフォルト値を挿入します。 当該の列は、データベースへ送られる SQL 文から除外されます。 このオプションは、関連する .dbm ファイルによってターゲット・データベース列のデフォルト値がデータベース・モデル内で定義されている場合にのみ有効になります。 |
空のストリング値「"」を挿入します | このオプションは、関連する .dbm ファイルによってターゲット・データベースがデータベース・モデル内で文字列型として定義されている場合にのみ有効になります。 |
NULL に設定します | このオプションは、関連する .dbm ファイルによってターゲット・データベースがデータベース・モデル内で NULL 可能な列として定義されている場合にのみ有効になります。 |
マップ・エラーをスローします | マップ・エラーを返します。
|
データベース列のデータを更新する場合、ソース・エレメントから 1 つの値をマッピングする各変換に対してデータベース・ポリシーを有効にすることができます。 データベース・ポリシーを設定する際には、入力ソースの各状態 (欠落、空、または Nil) について以下のいずれかのアクションを選択できます。
ソースの状態別のアクション | 動作 |
---|---|
データベース操作から列を除外します | 当該の列は、データベースへ送られる SQL 文から除外されます。 データベース内の現行の列値は変更されません。 |
空のストリング値「"」に設定します | このオプションは、関連する .dbm ファイルによってターゲット・データベースがデータベース・モデル内で文字列型として定義されている場合にのみ有効になります。 |
NULL に設定します | このオプションは、関連する .dbm ファイルによってターゲット・データベースがデータベース・モデル内で NULL 可能な列として定義されている場合にのみ有効になります。 |
マップ・エラーをスローします | マップ・エラーを返します。
|