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

Вниз

Как в запросе SQL работать с битами   Найти похожие ветки 

 
AFrolov ©   (2002-09-20 16:31) [0]

У меня в таблице хранится состояния в виде целого числа - каждый бит отвечает за определеннй признак. Как можно в запросе выбрать только те записи у которых определенный бит равен например 1?
заранее спасибо.


 
Cobalt ©   (2002-09-20 16:42) [1]

попробуй так:
where (Field1 and 8(или другая маска))<>0


 
Johnmen ©   (2002-09-20 16:43) [2]

Никак...


 
AFrolov ©   (2002-09-20 16:58) [3]

2
> Cobalt © (20.09.02 16:42)

К сожалению не прошло :-(


 
Wolf226 ©   (2002-09-20 17:36) [4]

Подключить UDF - bin_and

where bin_and( field1 and mask)<>0


 
sniknik ©   (2002-09-20 17:48) [5]

странно это, не прошло.
у меня сработало
SELECT * FROM 1saccs where isfolder and 1=1
isfolder может быть 0,1,2,3
в выборке только 1 и 3 что и надо?


 
AFrolov ©   (2002-09-20 17:49) [6]

Что такое UDF и как его подключить?


 
Wolf226 ©   (2002-09-20 17:53) [7]

User Defined Function

DECLARE EXTERNAL FUNCTION floor
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT "IB_UDF_floor" MODULE_NAME "ib_udf";


 
AFrolov ©   (2002-09-20 17:57) [8]

А из DLL Функцию дернуть можно? Или это только под Interbse, и будет ли это под другими СУБД работать?


 
Wolf226 ©   (2002-09-20 18:00) [9]

Так это оно и есть. На локальных СУБД - точно нету такого.


 
VictorT ©   (2002-09-20 19:48) [10]

Может это поможет... Вообще-то биты можно выделить с помощью обычных арефметических операций, например, если разделить число на два, и при этом получится целое число, это будет обозначать, что младший бит не установлен, и т.д.


 
sniknik ©   (2002-09-20 20:13) [11]

да чего помогать? and, or, xor работают в Access, подключаюсь из дельфей через ADO. ему надо разобратся что у него не так, если не получается.


 
Cobalt ©   (2002-09-21 10:19) [12]

WHERE ((Tickets.Status) =3) - есть записи

WHERE (((Tickets.Status) and 3) =3) в Access"97 выдает пустой набор

Наверное, еще от версии ADO зависит.(У меня стоит только Access, и ничего более.)


 
sniknik ©   (2002-09-21 12:35) [13]

Не не от версии. У меня есть возможность проверить на 6 машинах везде разные операционки или мдаки. Сработало только на одной!? и то при более тщательном разборе оказалось... сам виноват. оплошал.
(там в таблице просто не было значений с 2, и получилось правильно :-(()
и в итоге выяснил
select (1 and 0) {false, 0}, (1 and 1,2,3,4,короче любое число) {true, -1}
вот так странно работает, хотя в бейсике (если внутреннюю функцию делать) это действительно битовая операция. Жаль что эту внутреннюю функцию извне не получается вызывать а то бы проблема решилась бы.



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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
14-45558
Lola
2002-09-19 14:32
2002.10.14
Давайте лучше о собаках поговорим.


14-45498
Digitman
2002-09-17 12:01
2002.10.14
Офисная мини-ATC Panasonic KX-T1232100DB


4-45619
Карлсон
2002-08-29 23:20
2002.10.14
Опять про хендлы.


14-45572
iNew
2002-09-20 18:50
2002.10.14
Сообщение


14-45527
Bambuk
2002-09-18 23:03
2002.10.14
http://ixbt.com/multimedia/sven-audio/4.jpg