isSQLNullable

isSQLNullable プロパティーは、そのフィールドを NULL 値に設定できるかどうかを示します。 このプロパティーは、SQL レコード内のフィールドでのみ使用することができます。 有効な値は NO (デフォルト) と YES です。

EGL では、以前のバージョンとの互換性を保つことを目的として、このプロパティーを維持しています。新規のコードでは、「?」型拡張文字を使用することで、NULL 可能変数であることを示します。 詳しくは、『型拡張文字』および『NULL 値および NULL 型』を参照してください。

「?」を使用して NULL 可能にした変数は、{isSqlNullable = YES} を使用して NULL 可能にした変数とわずかに異なります。その NULL 可能変数 が NULL 値であり、複数のオペランドを持つ式で使用された場合、その変数は次の値を持つことになります。
以下に例を示します。
Record mySQLRecord type SQLRecord
	anInt INT {isSQLNullable = YES};
end
...
myRec mySQLRecord;
result, anotherInt INT?;

myRec.anINT = NULL;
result = myRec.anInt + 1;
EGL は式を評価する際に NULL フラグを無視するため、結果は 1 になります。
anotherInt INT? = NULL;
result = anotherInt + 1;
EGL は NULL フラグを考慮する (いずれかのオペランドが NULL 値を持つ場合、 数値式の結果が NULL になる) ので、結果は NULL 値になります。
SQL レコードの任意のフィールドが NULL 可能な場合、以下の機能が使用可能です。

フィードバック