![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Бинарная логика в 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 есть функции битовых операций.