itemsNullable

ビルド記述子オプション itemsNullable は、コードがプリミティブ・フィールドを NULL に設定できる環境を指定します。

有効な値は以下のとおりです。
NO (デフォルト)
以下の場合を除いて、プリミティブ・フィールドを NULL に設定することはできません。
  • フィールドが、非固定レコードのプリミティブ・フィールドであるか、SQL レコードの構造体フィールドであり、かつ
  • フィールド・レベルのプロパティー isNullable が yes に設定されている。

この振る舞いは、VisualAge® Generator および以前のバージョンの EGL と一貫性のあるものです。

YES
以下のフィールドはいずれも、NULL に設定することが可能です。
  • プリミティブ変数 (スタンドアロン・レコードまたは非固定レコード中)。
  • SQL レコード内の構造体フィールド

この振る舞いは、Informix® 製品 I4GL と一貫性のあるがありますが、basicInterface 型のインターフェース型のサービス・パーツでは使用できません。

プログラムが EGL ライブラリーに含まれる関数を呼び出す場合は、 プログラムとライブラリーの両方を、同一の itemsNullable 設定で生成する必要があります。 そうしない場合は、プログラムのコンパイル時にエラーが発生します。

次の表は、このオプションの決定による効果を示しています。

表 1. itemsNullable の効果
操作 ItemsNullable を NO に設定 ItemsNullable を YES に設定
NULL フィールドを設定する SQL レコードの外のフィールドに対しては不可能 フィールドに空ストリングを代入することで、NULL を設定することができます。
NULL フィールドを検査する SQL レコードの外のフィールドに対しては不可能 ストリングを関数 StrLib.clip に受け渡した結果を検査することで、NULL を検査できます。
  myString String = "";

  // 変数が NULL である
  // ことを示します。
  if (StrLib.clip(myString)
    is NULL)
    ;
  end
NULL フィールドを別のフィールドに割り当てる ソースの値は 0 またはブランクであり、この代入により、値と (ターゲットが NULL 可能な場合) NULL 状態の両方がコピーされます。 ターゲットが NULL 可能な場合、このターゲットは NULL に設定されます。 それ以外の場合、ターゲットは 0 またはブランクに設定されます。
有限長ストリングを他のストリングと連結する 有限長ストリングはブランクで埋められません。 有限長ストリングにはブランクで埋められ、 ストリング宣言で指定された最後の位置までストリングを拡張します。
数式で NULL フィールドを使用する このフィールドは、0 が含まれているかのように扱われます。 この式は NULL に評価されます。
テキスト式で NULL フィールドを使用する このフィールドは、スペースが含まれているかのように扱われます。 このフィールドは、空ストリングであるかのように扱われます。
論理式で NULL フィールドを使用する この式は、フィールドの値が 0 またはブランクであるかのように扱われ、次の例は TRUE に評価されます。
  0 == null
この式は、NULL が NULL と比較される場合のみ、TRUE に評価されます。次の例は、これと異なり、FALSE に評価されます。
  0 == null
空の SET™ フィールド NULL 状態は設定されません。 NULL 状態が設定されます。
空の SET レコード NULL 状態は設定されません。 NULL 状態が設定されます。

関連リファレンス
ビルド記述子オプション

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.