Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Бинарная логика в Firebird   Найти похожие ветки 

 
-SeM-   (2004-03-31 11:01) [0]

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


 
Johnmen ©   (2004-03-31 11:05) [1]

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


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

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


 
Johnmen ©   (2004-03-31 12:03) [3]

Напр. так
... 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 12:51) [4]

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


 
Digitman ©   (2004-03-31 13:05) [5]


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


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


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

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

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


 
Desdechado ©   (2004-04-01 13:48) [7]

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



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
6-1078114631
Svart
2004-03-01 07:17
2004.04.25
Получение информации о компьютерах в сети...


14-1081168443
senator
2004-04-05 16:34
2004.04.25
Как получить хендел окна текущего приложения?


4-1077210423
TankMan
2004-02-19 20:07
2004.04.25
Почему может GetDC(0) выдавать ошибку?


14-1080470983
Kolyan
2004-03-28 14:49
2004.04.25
классы и объекты


11-1063785981
<Falcon>
2003-09-17 12:06
2004.04.25
Текст в несколько строк в mdvXLGrid - КАК?