![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Арифметическое И в Access
Григорьев Антон © (2004-10-19 16:33:00)Есть ли возможность сделать сабж при доступе через ADO в разделе WHERE оператора SELECT? Что-то вроде WHERE (SomeField AND 2)<>0? Или как-нибудь ещё сделать выборку по целочисленным полям, у которых взведён нужный мне бит?
Johnmen (2004-10-19 18:12:00) [1]>Григорьев Антон © (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
Nikolay M. (2004-10-19 18:03:00) [2]
> Nikolay M. © (19.10.04 16:46) [3]
> TRUNC - отбраысвание дроби, не помню, как это в аксесе?
Fix.
Тогда д.б.
SELECT id
FROM tab
WHERE (field - (4 * Fix(field / 4))) >= 2
ы?
Григорьев Антон (2004-10-19 17:49:00) [3]
> Johnmen © (19.10.04 17:38) [6]
> А что есть кроме INT ? Что есть вместо CAST ?
Есть куча разных функций типа CInt, CDbl и т.п. - каждая для своего типа. Кстати, CInt(0.51) даёт 1, а CInt(0.49) и CInt(0.50) - 0. Только при чём здесь всё это?
Johnmen (2004-10-19 17:38:00) [4]>Григорьев Антон © (19.10.04 17:13) [5]
>CAST'a в Access нет. А Int для всех трёх случаев возвращает 0.
А что есть кроме INT ? Что есть вместо CAST ?
Григорьев Антон (2004-10-19 17:13:00) [5]
> Johnmen © (19.10.04 16:57) [4]
> >Григорьев Антон © (19.10.04 16:33)
>
> Ответ зависит от реализации CAST в аксесе для действительных
> чисел.
CAST'a в Access нет. А Int для всех трёх случаев возвращает 0.
Johnmen (2004-10-19 16:57:00) [6]>Григорьев Антон © (19.10.04 16:33)
Ответ зависит от реализации CAST в аксесе для действительных чисел. Т.е. что получится
CAST(0.49 AS INT)= ?
CAST(0.50 AS INT)= ?
CAST(0.51 AS INT)= ?
Nikolay M. (2004-10-19 16:46:00) [7]Чего-нить вроде
SELECT *
FROM tab
WHERE 4 * TRUNC(field / 4) - field >= 2
проверка 1-го бита (номера с 0), TRUNC - отбраысвание дроби, не помню, как это в аксесе?
Григорьев Антон (2004-10-19 16:43:00) [8]
> Ega23 © (19.10.04 16:38) [1]
> Logical (bitwise) operators + F1
Это из справки по Delphi. А меня интересуют арифметические операторы в Access-диалекте SQL. Пока я их в справке не нашёл.
Ega23 (2004-10-19 16:38:00) [9]Logical (bitwise) operators + F1