[ОТВЕТИТЬ]
Опции темы
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, время: 17:31.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.