Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / %Boolean. И все же, 2 или 3(или больше?) возможных значений? / 13 сообщений из 13, страница 1 из 1
02.04.2010, 13:06
    #36557598
kolesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
Кто-нибудь использует пустое значение свойств типа %Boolean? Без InitialExpression?
Ждут ли неожиданности?
Появилась задачка, где как раз нужно получать у флага либо пусто (не трогали флаг), либо значение 0 или 1 (трогали, последнее значение такое-то).
В документации два значения. В базе несколько больше... вот и думаю..
...
Рейтинг: 0 / 0
02.04.2010, 14:06
    #36557815
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
kolesov,

Третье значение NULL по идее
...
Рейтинг: 0 / 0
02.04.2010, 14:17
    #36557857
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
Мне кажется, это третье надо сделать чем-то одним из двух и сделать свойcтво REQUIRED.
...
Рейтинг: 0 / 0
02.04.2010, 15:33
    #36558131
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
Код: plaintext
1.
2.
3.
4.
Class d.test Extends %Persistent
{
Property test As %Boolean;
}
IDtest1null2false3true
Код: plaintext
1.
2.
3.
4.
5.
6.
TEST>w ##class(d.test).%OpenId( 1 ).test
 
TEST>w ##class(d.test).%OpenId( 2 ).test
 0 
TEST>w ##class(d.test).%OpenId( 3 ).test
 1 
Либо создайте вычисляемое поле, например:
Код: plaintext
nvl(+field,x):  0  - false,  1  - true, x - null
.
...
Рейтинг: 0 / 0
02.04.2010, 16:20
    #36558298
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
а лучше сразу прописать:
Код: plaintext
Property AAA As %Boolean [ InitialExpression =  0 ];
...
Рейтинг: 0 / 0
02.04.2010, 16:45
    #36558363
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
Ymka2007а лучше сразу прописать
Не факт... Все зависит от прикладной задачи.
...
Рейтинг: 0 / 0
02.04.2010, 16:51
    #36558372
iriskin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
Я использую, никаких форс мажоров пока не было ;-)
Когда создается объект, поле пустое, при редактировании пустое значение уже не вернуть в любом случае будет или 0, или 1.
...
Рейтинг: 0 / 0
03.04.2010, 17:18
    #36559278
kolesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
iriskin,

Спасибо. Обнадежили ;)
...
Рейтинг: 0 / 0
04.04.2010, 07:16
    #36559605
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
В объекте хорошо, там идет проверка типа по %Boolean
а в SQL? чет мне кажется, что пусто будет null, а не 0.
...
Рейтинг: 0 / 0
05.04.2010, 12:29
    #36560902
ser_shu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
По тяжелому долгому опыту для большинства пользователей Cache (sql и интерфейсы):
1 - true, 0-false, ""-null
Но бывает еще и $char(0)... - когда уж совсем не присвоено :) с точки зрения РБД (настоящий NULL, а "" - это пустое значение)
Поэтому надо аккуратно проверять булевы значения = NULL, особенно при обмене данными с другими СУБД.
Я стараюсь сделать их обязательными и имеющими только два значения - false и true (0 и 1).
Меньше ошибок.
Кстати, в инете очень много топиков на тему 4 значений булевой переменной.
Я был потрясен в новогоднюю ночь этими откровениями, как просто я относился к да/нет столько лет :(
...
Рейтинг: 0 / 0
06.04.2010, 04:28
    #36562277
Iset
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
iriskin,

при редактировании в Каше можно вернуть значение пустого поля, вот так: x=""
...
Рейтинг: 0 / 0
06.04.2010, 04:57
    #36562279
ser_shu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
Iset,

если поле обязательное (REQUIRED), то в базу оно пустое не попадет. Ошибку на проверке при записи выдаст.
...
Рейтинг: 0 / 0
06.04.2010, 06:34
    #36562292
Iset
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%Boolean. И все же, 2 или 3(или больше?) возможных значений?
ser_shu,
это не оспаривалось :)
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / %Boolean. И все же, 2 или 3(или больше?) возможных значений? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]