При SELECT * FROM FIRMS WHERE (Type & 2)=2 ничего не возращается, хотя полн
XDefender
Дата: 23.05.2002 10:00:48
При SELECT * FROM FIRMS WHERE (Type & 2)=2 ничего не возращается, хотя полно фирм где Type=7. ЧТО &не работает ??
Пробовал
При SELECT * FROM FIRMS WHERE (Type AND 2)=2 ничего не возращается, хотя полно фирм где Type=7. ЧТО &не работает ??
Эффект такой-же
ПРобовал
При SELECT * FROM FIRMS WHERE (Type & 2)<>0 ничего не возращается, хотя полно фирм где Type=7. ЧТО &не работает ??
Возвращает исключительно все записи.
Как это по другому сформулировать?
PS: Мне нужно вывести все записи, где 2 бит в поле Type был установлен (или n-ый).
BAlex
Дата: 23.05.2002 11:53:27
Насколько я помню, символ "&" означает конкатенацию. Но она вам тут не нужна.
Есть ли операторы для работы в SQL-языке для MS Access с битами, я не знаю.
Сдвиг вправо на один двоичный разряд - нужно десятичное число поделить на 2 (десятичное),
сдвиг влево на один двоичный разряд - число десятичное число умножить на 2.
Ольга
Дата: 27.05.2002 09:38:11
Опрератор XOR посмотрите. Есть возможность поразрядного сравнения
Всего хорошего
Erika
Дата: 03.06.2002 11:35:27
2 XDefender:
Не знаю, куда попадет ответ на тему (из-за перестройки на форуме)
В Access побитовые операции, похоже, проходят только в VBA, поэтому пишется функция типа
Function myAnd(a As Integer, b As Integer) As Integer
myAnd = a And b
End Function
И используется в запросе
SELECT * FROM FIRMS WHERE myAnd(Type,2)=2