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

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

23.11.2024 1:35


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

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

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

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

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

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