Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Непонятка с ограничением домена / 4 сообщений из 4, страница 1 из 1
13.10.2016, 02:25
    #39325803
CyberMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятка с ограничением домена
FB 2.5.6. Объявлен домен:
Код: sql
1.
2.
3.
CREATE DOMAIN DOM$DATE AS
DATE
CHECK ((VALUE >= '01.01.1900') AND (VALUE <= '01.01.2020'));



При выполнении скрипта:
Код: sql
1.
2.
3.
4.
5.
6.
EXECUTE BLOCK
AS
DECLARE VARIABLE DD DOM$DATE;
BEGIN
    DD = '13.10.2016';
END


происходит исключение:
Код: plaintext
1.
2.
The insert failed because a column definition includes validation constraints.
validation error for variable DD, value "13.10.2016".
At block line: 5, col: 5.

Анализ показал, что в данном случае исходная дата приводится к строке. Если '01.01.2020' поменять на '31.12.2020', то исключения нет, но проверка не работает, так как VALUE преобразуется в '2016-13-10'.
Такое поведение - приведение VALUE к типу второго операнда, а не второго операнда к типу VALUE - правильно?
...
Рейтинг: 0 / 0
13.10.2016, 07:08
    #39325830
m7m
m7m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятка с ограничением домена
CyberMax,
Да
Вот только не приведение к типу второго операнда
а к приведение к строке поскольку один из операндов строка
...
Рейтинг: 0 / 0
13.10.2016, 09:13
    #39325884
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятка с ограничением домена
CyberMax,

диалект какой? Если 3, то домен надо было вот так определять

Код: sql
1.
2.
3.
CREATE DOMAIN DOM$DATE AS
DATE
CHECK (VALUE BETWEEN date '01.01.1900' AND date '01.01.2020');
...
Рейтинг: 0 / 0
13.10.2016, 09:58
    #39325942
CyberMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятка с ограничением домена
Симонов Денис,

Да, примерно на такой вариант и переделал.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Непонятка с ограничением домена / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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