Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.026 c
6-1094823677
redlord
2004-09-10 17:41
2004.11.21
как изменить время отведенное на подключение сокету ?


14-1099243806
123
2004-10-31 20:30
2004.11.21
MS-DOS


4-1097486211
aleshap
2004-10-11 13:16
2004.11.21
Как в программе определить, что запустилась "Заставка Экрана"?


8-1092984946
k-sergey
2004-08-20 10:55
2004.11.21
как в TlistBox изменить цвет полоски выделеного item-а?


1-1100106828
Yus
2004-11-10 20:13
2004.11.21
Создание Класса




   Наверх