Ошибка при установке default value для типа DATE

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Ошибка при установке default value для типа DATE

Сообщение CyberMax » 01 дек 2006, 02:10

FB 2.0. В таблицу добавляется поле "DATE_CREATE" Not Null и default value = CURRENT_DATE. При просмотре таблицы, поле "DATE_CREATE" имеет значение '17.11.1858'.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 01 дек 2006, 09:33

так не заполнено же!
www.ibase.ru/devinfo/db_repair.htm

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 01 дек 2006, 13:02

Ну ты уж прям стрельнул по площадям из катюши :)

Когда к существующей таблице добавляется поле not null, оно содержит null, неважно, есть там default или нет. На эту тему были обширнейшие дебаты, Джим настоял на том, чтоб default подставлялся на чтении. Я был резко против, говорил нефиг пудрить девелоперу моск, не всегда default будет какой-нить простейший 0 или пустая строка. В моей практике если уж добавляется такое поле, то оно должно быть заполнено задним ходом на основании каких-то других данных, часто по довольно сложному алгоритму, порой итеративному - прогнал, посмотрел на оставшиеся нуллы, почесал репу, скорректировал алгоритм, прогнал, почесал репу... Подстановка default при этом мешает определить незаполненные записи, не всегда есть такой default, который не может являться результатом работы заполнятора ни при каких условиях. Твой случай - типичный пример. Ну откуда серверу знать в какой момент была создана вот эта запись, вчера или год назад?

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Re: Ошибка при установке default value для типа DATE

Сообщение Attid » 02 дек 2006, 10:42

хм, у меня всн нормально отрабатывает, только дефолтное значение на дату у меня 'NOW' это у меня что-то не правельно работает или когда стоит 'now' делается преобразование и по этом значение сохраняется ?

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 03 дек 2006, 06:41

Я бы не посчитал данную ситуацию багом, но при подстановке Default Value = 'TODAY' и чтении таблицы я получил текущую дату... Поэтому и предположил, что ситуация с CURRENT_DATE - это баг.

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 03 дек 2006, 07:09

на самом деле, баг - это с 'NOW'/'TODAY' :)

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 04 дек 2006, 05:26

Так это уже известный баг?:roll:

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 04 дек 2006, 11:13

угу. И вообще, вся идея подстановки дефолта вместе отсутствующего значения - один большой баг.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 04 дек 2006, 11:25

dimitr писал(а):вся идея подстановки дефолта вместе отсутствующего значения - один большой баг.
+1
Доктор сказал "в морг", значит - в морг.
С нулами пусть разработчик борется, мало ли, как именно ему надо.

Ответить