Добавить комментарий
![]() |
Сравнение с null в Delphi |
Результат сравнения с null зависит от значения переменных NullEqualityRule и NullMagnitudeRule.
NullEqualityRule определяет правила для равенства:
var v: Variant; b: Boolean; begin v := Null; NullEqualityRule := ncrLoose; // Значение по умолчанию. // Null равен другому Null и не равен другим значениям b := (v = Null); // True NullEqualityRule := ncrStrict; // Как в СУБД. Null не равен ничему, в том числе, другому Null b := (v = Null); // False NullEqualityRule := ncrError; // Сравнение с Null будет вызывать исключение b := (v = Null); // Здесь будет ошибка ...
NullMagnitudeRule аналогично определяет поведение для операторов сравнения больше и меньше:
var v: Variant; b: Boolean; begin v := Null; NullMagnitudeRule := ncrLoose; // Значение по умолчанию. // Null меньше любого другого значения b := (v < 0); // True b := (v > 0); // False NullMagnitudeRule := ncrStrict; // Как в СУБД. Сравнение с Null всегда ложь b := (v < 0); // False b := (v > 0); // False NullMagnitudeRule := ncrError; // Сравнение с Null будет вызывать исключение b := (v < 0); // Здесь будет ошибка ...
Метки: