powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Немного расуждения :) почему в микрософт акссес SQL нет побитового AND
6 сообщений из 6, страница 1 из 1
Немного расуждения :) почему в микрософт акссес SQL нет побитового AND
    #32106867
omon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почему микрософт не зделала побитовъй АНД Потомучто они дураки или умнъе ?
...
Рейтинг: 0 / 0
Немного расуждения :) почему в микрософт акссес SQL нет побитового AND
    #32106890
Julius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это где нету: в SQL или VBA? В VBA он есть:
The And operator also performs a bitwise comparison of identically positioned bits in two numeric expressions and sets the corresponding bit in result according to the following table:

If bit in expression1 is And bit in expression2 is The result is
0 0 0
0 1 0
1 0 0
1 1 1

Это из хелпа по VBA
...
Рейтинг: 0 / 0
Немного расуждения :) почему в микрософт акссес SQL нет побитового AND
    #32106892
Julius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извиняюсь, не правильно прочитал тему. Видимо потому нету, что это можно реализовать из Access с помощью функции VBA. Конечно, если работать с запросами из самого Access, когда проект активен.

Option Compare Database
Option Explicit

Function BITAND(ByVal a As Long, ByVal b As Long) As Long
BITAND = a And b

End Function

Function list()
Dim rst As ADODB.Recordset
Set rst = CurrentProject.Connection.Execute("SELECT * FROM Запрос1")
While Not rst.EOF
Debug.Print rst.Fields(0)
rst.MoveNext

Wend
End Function

Вот текст Запрос1, базирующегося на таблице Таблица1, которая имеет 2 поля целого типа (Код1 и код2, соответственно):

SELECT bitand([Код1],[Код2]) AS Выражение1
FROM Таблица1;

Вроде как все работает.

Можно и без созранного запроса, создав выражение в динамическом операторе SQL:

Function list1()
Dim rst As ADODB.Recordset
Set rst = CurrentProject.Connection.Execute("SELECT BITAND(Код1, Код2) FROM Таблица1")
While Not rst.EOF
Debug.Print rst.Fields(0)
rst.MoveNext

Wend
End Function
...
Рейтинг: 0 / 0
Немного расуждения :) почему в микрософт акссес SQL нет побитового AND
    #32106912
omon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
що тогда :)\
:)
...
Рейтинг: 0 / 0
Немного расуждения :) почему в микрософт акссес SQL нет побитового AND
    #32106929
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же вам уже отвечал, что тогда используйте bAnd и bOr.
...
Рейтинг: 0 / 0
Немного расуждения :) почему в микрософт акссес SQL нет побитового AND
    #32106930
Julius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bAND и bOR по какой-то странной причине не поддерживается интерфейсом построителей запросов Access, но это не означает, что они вообще отсутствуют в синтаксисе Jet SQL. Тот же пример можно переписать и так:

Function list1()
Dim rst As ADODB.Recordset
Set rst = CurrentProject.Connection.Execute("SELECT (Код1 bAND Код2) FROM Таблица1")
While Not rst.EOF
Debug.Print rst.Fields(0)
rst.MoveNext

Wend
End Function

и тоже будет работать, но только уже и из ASP
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Немного расуждения :) почему в микрософт акссес SQL нет побитового AND
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]