powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / NULL в TIMESTAMP (+)
14 сообщений из 14, страница 1 из 1
NULL в TIMESTAMP (+)
    #32435125
Kostya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ подскажите как занести в TIMESTAMP NULL?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SET TERM ^ ;
CREATE PROCEDURE UPDATE (
    ID INTEGER,
    MASK INTEGER,  
    TIME1 TIMESTAMP,
    TIME2 TIMESTAMP)
AS
BEGIN
UPDATE TABLE1 SET
T1_TIME1 = (DtIF( BITAND(MASK , 1 ), :TIME1 ,T1_TIME1 ),
T1_TIME2 = (DtIF( BITAND(MASK , 2 ), :TIME2 ,T1_TIME2 ),
WHERE T1_ID = :ID;
END ^
SET TERM ; ^


Вместо NULL заносится 1858-11-17 00:00:00

P.S. Как вам такой способ обновления нужных полей в базе.
Или есть способо лучше? :)

P.P.S С CHAR такая же фигня, т.е. NULL не занести. Вместо него, поле заполняется пробелами.
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435148
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где там NULL должен появиться? Т.е. TIME1 или TIME2 принимать значения NULL ?

Best regards,
Dnico.
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435155
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теги [ SRC ][ /SRC ] вокруг исходников появляются не сами по себе, а их расставляет модератор, которому это пока не надоело...
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435157
Kostya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TIME1 и/или TIME2 могут принимать значение NULL
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435158
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, у тебя функция DtIF принимает и возвращает значения BY DESCRIPTOR? В базу пишется то, что твоя функция возвращает. Я никогда не работал с NULL в UDF, но вроде бы с ним можно работать если передвавать параметры BY DESCRIPTOR ...
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435167
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одним словом - это работает:
Код: plaintext
1.
update t1 set dt = null;

А DtIF скорее всего возвращает не NULL, а 1858-11-17 00:00:00 !
Такое случается ...

Best regards,
Dnico.
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435180
Kostya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DtIf Стандартная из rFunc UDF Library
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435186
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Она не умеет работать с NULL-ами
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435195
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверь, что выдают этоти запрос ?

SELECT DtIF( 0, null ,'01.01.2004') FROM RDB$DATABASE;
SELECT DtIF( 1, null ,'01.01.2004') FROM RDB$DATABASE;

Best regards,
Dnico.
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435208
Kostya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эх, плохо что не умеет :(

Ошибку -104 выдает :)
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435211
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какую версию пользуешь?

Best regards,
Dnico.
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435219
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для FB 1.5
Код: plaintext
1.
2.
T1_TIME1 = CASE BITAND(MASK , 1 ) WHEN  0  THEN T1_TIME1 ELSE :TIME1 END,
T1_TIME2 = CASE BITAND(MASK , 2 ) WHEN  0  THEN T1_TIME2 ELSE :TIME2 END,

Best regards,
Dnico.
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435275
Kostya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fb 1.5
Спасибо попробую
...
Рейтинг: 0 / 0
NULL в TIMESTAMP (+)
    #32435294
Kostya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оооо, Dnico , вроде помогло )
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / NULL в TIMESTAMP (+)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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