powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5: Странное поведение переменной типа bit
4 сообщений из 4, страница 1 из 1
ASE 12.5: Странное поведение переменной типа bit
    #33652817
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Известно что поле BIT в таблице не может содержать NULL .
Думал что то-же распространяется и на переменные типа BIT .

Не тут то было!!!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
--declare variables
declare @b bit
declare @i int

--select non initialized bit variable returns 0
select @b as "@b"

--assign bit variable into int variable
select @i=@b
--select int valiable returns NULL ! :(((
select @i as "@i"

--select NULL into bit variable. Strange but it's working...
select @b=null
--select the bit variable with NULL value returns 0
select @b as "@b=null"

--select 5 into bit. Still working...
select @b= 5 
--select of the bit variable with value "5" returns 1
select @b as "@b=5"

--assing 5 in bit to int
select @i=@b
--select returns 1
select @i as "@i=@b=5"
...
Рейтинг: 0 / 0
ASE 12.5: Странное поведение переменной типа bit
    #33652877
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы попробуйте написать курсор с left join в правой части которой есть переменная бит.
Если условие выборки не выполняется то все поля из правой части принимают значение NULL.
Фетчим это в переменные и пробуем обратиться к переменной типа бит.
Имеем server trace.
Короче никогда не пользуйтесь в ASE этим типом.
...
Рейтинг: 0 / 0
ASE 12.5: Странное поведение переменной типа bit
    #33652914
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переменная любого типа в ASE всегда может быть NULL.
Это "значение" любой непроинициализированной переменной.
А то, что поле bit не может быть NULL связано со способом ее хранения - до 8 таких полей храняться в одном байте.

Также на поля типа bit нельзя создать индекс.
...
Рейтинг: 0 / 0
ASE 12.5: Странное поведение переменной типа bit
    #33652949
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПеременная любого типа в ASE всегда может быть NULL.
Это "значение" любой непроинициализированной переменной.

так пусть бы и возвращало NULL а не 0 !
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5: Странное поведение переменной типа bit
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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