![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Используя ЗАБОЙ, полю присваивается NULL, а хотелось бы НОЛЬ [IB6.x, FB]
q-q © (2006-06-06 10:07:00)При удалении цифры используется Забой => Полю присваивается NULL, а хотелось бы НОЛЬ. Устанавливать NOT NULL полю не хотелось бы (удалять инф-цию удобней Забоем, а не НУЛЕМ). Триггер на update (if f.new is null then f.new=0) по каждому числовому полю тоже нехорошо.
Подскажите, как решить оптимальнее на уровне базы.
Ega23 (2006-06-06 12:52:00) [41]
> Пользователу не объяснишь, что числа надо обнулять НУЛИКОМ,
> они пользуются ЗАБОЕМ. В базу попадает NULL. Запрос суммирования
> с этой записью возвращает NULL.
>
А IsNull использовать в запросе религия не позволяет?
Ega23 (2006-06-06 12:51:00) [42]
> Плохой тон - писать неправильно работающие программы. Все
> остальное - индивидуальный стиль программирования. 8-)
Согласен. Но если бы люди не пользовали эту дурацкую связку TTable - TDBGrid, то, согласись, таких вопросов бы не возникало.
Ну уж больно всё глючно получается...
Сергей М. (2006-06-06 12:50:00) [43]
> q-q (06.06.06 12:44) [42]
Тебе чем BeforePost не угодило ?
Зачем (особенно при такой структуре БД) наживать себе геморрой с триггерами, если вся твоя из пальца высосанная проблема до смешного просто решается прямо на стороне клиента ?
Sergey13 (2006-06-06 12:48:00) [44]2[44] Ega23 © (06.06.06 12:46)
Плохой тон - писать неправильно работающие программы. Все остальное - индивидуальный стиль программирования. 8-)
unknown (2006-06-06 12:48:00) [45]
> q-q (06.06.06 12:44) [42]
> Пользователу не объяснишь, что числа надо обнулять НУЛИКОМ
Не надо ничего пользователю объяснять. См. [9] - значение поля по умолчанию
будет = 0. И никаких null-ов.
Sergey13 (2006-06-06 12:47:00) [46]2[42] q-q (06.06.06 12:44)
А ты им и не объясняй. Ты программу соответственно напиши.
Ega23 (2006-06-06 12:46:00) [47]
> Пользователу не объяснишь, что числа надо обнулять НУЛИКОМ,
> они пользуются ЗАБОЕМ. В базу попадает NULL. Запрос суммирования
> с этой записью возвращает NULL.
>
Редактировать данные в DBGrid-е и сразу шарашить их в базу - плохой тон.
unknown (2006-06-06 12:46:00) [48]
> ЮЮ © (06.06.06 12:38) [41]
> nvl(или как она у вас в FB зовется)
coalesce
И, все-таки непонятно, почему > Числовых полей - много, и их число увеличивается
q-q (2006-06-06 12:44:00) [49]Пользователу не объяснишь, что числа надо обнулять НУЛИКОМ, они пользуются ЗАБОЕМ. В базу попадает NULL. Запрос суммирования с этой записью возвращает NULL.
ЮЮ (2006-06-06 12:38:00) [50]Ну тогда бы по сабжу рассказал, что это за поля и почему в таблице они должны быть нулевыми, в то время как пользователю удобнее их видеть NULLевыми. Нолики-то зачем? nvl(или как она у вас в FB зовется) в конце концов есть
Sergey13 (2006-06-06 12:36:00) [51]2[38] q-q (06.06.06 12:30)
>Пример с водителями взялся из воздуха на фразу:
Ну так не все воздушные катаклизмы достойны опубликования. 8-)))))))))))))))
Сергей М. (2006-06-06 12:36:00) [52]
> q-q (06.06.06 12:30) [38]
> к сабдж никакого отношения не имеет
Еще как имеет !
При грамотной организации структуры БД проблема по сабжу отпадает сама собой.
q-q (2006-06-06 12:30:00) [53]>ЮЮ © (06.06.06 12:17) [37]
>Только откуда у автора проблемы с нулями в озвученных атрибутах. ?>Водители спидометры каждый день на 00000 скручивают
Пример с водителями взялся из воздуха на фразу:
>Sergey13 © (06.06.06 10:44) [13]
>2[11] q-q (06.06.06 10:38)
>>Числовых полей - много, и их число увеличивается.
>Наверное спроектировано не очень хорошо. Симптом известный. 8-)
и к сабдж никакого отношения не имеет
ЮЮ (2006-06-06 12:17:00) [54]
> Sergey13 © (06.06.06 12:11) [36]
Так они же путевые листы не выбрасывают, надеюсь.
Только откуда у автора проблемы с нулями в озвученных атрибутах. Водители спидометры каждый день на 00000 скручивают?
Sergey13 (2006-06-06 12:11:00) [55]2[34] q-q (06.06.06 12:08)
А логистов всего мира не интересует вчерашний утренний километраж? Не говоря уж о среднемесячном литраже.
ЮЮ (2006-06-06 12:10:00) [56]
> Допустим, сегодня я ввел километраж на утро и километраж
> на вечер, а завтра воткнул бортовые компьютеры (БК).
Если завтра бортывые компьютеры станут неотъемлимой
частью путевого листа, что станут делать логисты всего мира ?
q-q (2006-06-06 12:08:00) [57]> ЮЮ © (06.06.06 12:03) [30]
> Даже если экспедитор работает в ночную смену? Сознание лрогистов
> при этом не переворачивается? :)
Это со скрипом еще проходит, вот когда счетчик начнет новый круг - вот это да.
Ega23 (2006-06-06 12:07:00) [58]
> Для адыкватного восприятия действительности
Для этого обычно Master-Detail связку организовавают. В данном случае.
Сергей М. (2006-06-06 12:06:00) [59]
> q-q (06.06.06 11:56) [26]
> Как с помощью SQL вытащить записи подчинненной таблицы в
> строку главной
Не надо туда ничего "вытаскивать", не для того главная таблица предназначена при такой структуре БД.
q-q (2006-06-06 12:05:00) [60]>Ega23 © (06.06.06 12:01) [28]
>> Ну-ка, ну-ка. Как с помощью SQL вытащить записи подчинненной
>> таблицы в строку главной
>1. А нафига?
>2. Есть такая штука - join.
Для адыкватного восприятия действительности