Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Ингредиент, как вычислить его в таблице smcard? : Супермаг Плюс (Супермаг 2000)

19.03.2024 13:33


10.11.2011 09:51
fez_i
 
Всем доброго времени суток.
Возник вопрос, как найти ингердиент в таблице smcard? В поле "flags" существует масса вариаций проставления значения в зависимости от количества флагов на закладке "карточка". Может кто сталкивался с такой задачей? Как высчитывается значение в поле "flags"?
10.11.2011 10:00
akonev
 
Код:
select * from smcard c where bitand(c.flags,512)=512
10.11.2011 10:09
fez_i
 
Прошу прощения, если создал лишнюю тему. Не смог найти.

Andrew_Konev, для меня не совсем правильный запрос, но спасибо. Дело в том, что в БД у карточки может стоять не только флаг "ингредиент". Я так понимаю в смежной теме описаны значения, которые проставляются при проставлении того или иного флага, а если их несколько, то значения просто суммируются?
10.11.2011 10:26
akonev
 
просто суммируются. по сути это отдельные биты поля флагов. взвелся бит - добавилось его значение.

запрос как раз проверяет только один бит из всех, отвечающий за ингридиенты. состояние остальных отбрасывается битовой маской bitand

первую ссылку надо дочитать до конца, там описание ошибки СМ+, возникавшей при копировании карточек-ингредиентов: взводился флаг 1024.
10.11.2011 10:35
fez_i
 
У меня нет в базе таких значений, смежную тему прочитал.

Большое спасибо!
Часовой пояс GMT +3, время: 13:33.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.