powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Complete Boolen Eval + Variant. Баг или нет?
3 сообщений из 3, страница 1 из 1
Complete Boolen Eval + Variant. Баг или нет?
    #39978718
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код:
Код: pascal
1.
2.
3.
  QueryActive := qTransfers.Active and not qTransfers.IsEmpty;
  IsOutToday := QueryActive and (qTransfers.FieldByName('ODATE').AsDateTime = Date);
  CanEditOut := IsOutToday and (qTransfers['PAYD'] < 2) and not qTransfers['BLOCKED'];

При qTransfers.Active = False выдаёт исключение "Field 'BLOCKED' not found" (непонятно, почему BLOCKED, а не PAYD?).

Если последнюю строчку изменить на
Код: pascal
1.
  CanEditOut := IsOutToday and (qTransfers['PAYD'] < 2) and (qTransfers['BLOCKED'] = False);


то всё работает как задумано. Это какие-то особенности преобразования Variant -> Boolean или просто баг?

CBE отключено.
...
Рейтинг: 0 / 0
Complete Boolen Eval + Variant. Баг или нет?
    #39978734
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так ?
Код: pascal
1.
CanEditOut := IsOutToday and (qTransfers['PAYD'] < 2) and not boolean(qTransfers['BLOCKED'])
...
Рейтинг: 0 / 0
Complete Boolen Eval + Variant. Баг или нет?
    #39978737
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я, например, пишу так, чтобы не надеяться на всякие CBE
Код: pascal
1.
2.
3.
4.
var F: boolean;
F := qTransfers.Active and not qTransfers.IsEmpty;
if F then F := qTransfers['ODATE'] = Date();
if F then F := (qTransfers['PAYD'] < 2) and not boolean(qTransfers['BLOCKED']);
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Complete Boolen Eval + Variant. Баг или нет?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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