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

Вниз

Арифметическое И в Access   Найти похожие ветки 

 
Григорьев Антон ©   (2004-10-19 16:33) [0]

Есть ли возможность сделать сабж при доступе через ADO в разделе WHERE оператора SELECT? Что-то вроде WHERE (SomeField AND 2)<>0? Или как-нибудь ещё сделать выборку по целочисленным полям, у которых взведён нужный мне бит?


 
Ega23 ©   (2004-10-19 16:38) [1]

Logical (bitwise) operators  + F1


 
Григорьев Антон ©   (2004-10-19 16:43) [2]


> Ega23 ©   (19.10.04 16:38) [1]
> Logical (bitwise) operators  + F1

Это из справки по Delphi. А меня интересуют арифметические операторы в Access-диалекте SQL. Пока я их в справке не нашёл.


 
Nikolay M. ©   (2004-10-19 16:46) [3]

Чего-нить вроде
SELECT *
FROM tab
WHERE 4 * TRUNC(field / 4) - field >= 2
проверка 1-го бита (номера с 0), TRUNC - отбраысвание дроби, не помню, как это в аксесе?


 
Johnmen ©   (2004-10-19 16:57) [4]

>Григорьев Антон ©   (19.10.04 16:33)  

Ответ зависит от реализации CAST в аксесе для действительных чисел. Т.е. что получится
CAST(0.49 AS INT)= ?
CAST(0.50 AS INT)= ?  
CAST(0.51 AS INT)= ?


 
Григорьев Антон ©   (2004-10-19 17:13) [5]


> Johnmen ©   (19.10.04 16:57) [4]
> >Григорьев Антон ©   (19.10.04 16:33)  
>
> Ответ зависит от реализации CAST в аксесе для действительных
> чисел.

CAST"a в Access нет. А Int для всех трёх случаев возвращает 0.


 
Johnmen ©   (2004-10-19 17:38) [6]

>Григорьев Антон ©   (19.10.04 17:13) [5]
>CAST"a в Access нет. А Int для всех трёх случаев возвращает 0.

А что есть кроме INT ? Что есть вместо CAST ?


 
Григорьев Антон ©   (2004-10-19 17:49) [7]


> Johnmen ©   (19.10.04 17:38) [6]
> А что есть кроме INT ? Что есть вместо CAST ?

Есть куча разных функций типа CInt, CDbl и т.п. - каждая для своего типа. Кстати, CInt(0.51) даёт 1, а CInt(0.49) и CInt(0.50) - 0. Только при чём здесь всё это?


 
Nikolay M. ©   (2004-10-19 18:03) [8]


> Nikolay M. ©   (19.10.04 16:46) [3]
> TRUNC - отбраысвание дроби, не помню, как это в аксесе?

Fix.
Тогда д.б.
SELECT id
FROM tab
WHERE (field - (4 * Fix(field / 4))) >= 2
ы?


 
Johnmen ©   (2004-10-19 18:12) [9]

>Григорьев Антон ©   (19.10.04 17:49) [7]
>Только при чём здесь всё это?

При поиске ответа на твой вопрос.

Проверить 5 бит в integer поле
WHERE CInt(i/16.0-0.5)/2.0 - CInt((CInt(i/16.0-0.5)-0.5)/2.0) > 0



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

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

Наверх




Память: 0.48 MB
Время: 0.027 c
3-1098438800
*Pavel
2004-10-22 13:53
2004.11.21
Какой из MSSQL серверов выбрать ?


14-1099481328
Mike Kouzmine
2004-11-03 14:28
2004.11.21
Буш победил


4-1097339762
Clip
2004-10-09 20:36
2004.11.21
Clipboard (Unicode) -> Clipboard/File (Win-1252)


14-1099635342
MBo
2004-11-05 09:15
2004.11.21
Пятничная разминка. Занятные задачки


14-1099203151
Свердликовский М.В.
2004-10-31 09:12
2004.11.21
Предлагаю «поломать» голову над загадкой.