Главная страница
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.075 c
9-1090603229
grouzd[E]v
2004-07-23 21:20
2004.11.21
Collision vs. Angle


1-1099568054
TUser
2004-11-04 14:34
2004.11.21
sharing violation


4-1097117796
December
2004-10-07 06:56
2004.11.21
Получение админстративных прав под Windows NT/2000/XP


8-1093372758
miek
2004-08-24 22:39
2004.11.21
GLScene: техника массовых сцен


1-1099393539
star.ru
2004-11-02 14:05
2004.11.21
TImage32 и изображение