Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Бинарная логика в Firebird [D7, WinME]


-SeM- ©   (2004-03-31 11:01:00) 

В таблице базы Firebird есть поле INTEGER, выполняющее роль битового массива. Каким должно быть условие запроса, чтобы ,например, выбрать все записи с включенным 5 битом этого поля?


Desdechado   (2004-04-01 13:48:00) [1]

так UDF в запросе можно использовать
тем паче в стандартной поставке ib_udf.dll идет с битовыми функциями


-SeM-   (2004-04-01 10:45:00) [2]

Не, я ничего не имею против UDF, просто в данном случае лучше запросом.
Тем более что данных не много :)

Спасибо.
Вопрос снят.


Digitman   (2004-03-31 13:05:00) [3]


> UDF не хотелось бы


а почему ? идеальный же вариант ..
а CAST'ы подобного рода, как ни крути, на больших НД будут давать ощутимую потерю производительности запросов


-SeM-   (2004-03-31 12:51:00) [4]

Сенкс!
Длинно, но работает :)


Johnmen   (2004-03-31 12:03:00) [5]

Напр. так
... WHERE
     CAST(MyIntField/16.0-0.5 AS INTEGER)/2.0 -
     CAST((CAST(MyIntField/16.0-0.5 as integer)-0.5)/2.0 AS INTEGER) > 0

если в твоей нумерации 5-ый бит это 16  
:)


-SeM-   (2004-03-31 11:17:00) [6]

UDF не хотелось бы...
А других вариантов нет?


Johnmen   (2004-03-31 11:05:00) [7]

Использовать UDF. Напр. в RFUNC есть функции битовых операций.


Наверх

Титульная страница Поиск, карта сайта Написать письмо