Главная страница
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.023 c
1-1099987827
Dmitrij_K
2004-11-09 11:10
2004.11.21
Динамические массивы


14-1099241658
VEG
2004-10-31 19:54
2004.11.21
Никто не ставил винт 160-200Гб на старые мат.платы (2000 год)?


14-1099139953
DiamondShark
2004-10-30 16:39
2004.11.21
Заповедник сказок.


14-1099406379
Andryk
2004-11-02 17:39
2004.11.21
Кижки которы делают обкуренные авторы для детей :))))))


1-1100015551
Dema-X
2004-11-09 18:52
2004.11.21
}{афман и его адаптивный метод кодирования