![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно в DBGridEh'е запрещать, оставлять пустые записи
DelphiLexx © (2006-11-10 12:43:00)У меня DBGridEh связан через DataSource c FibDataSet'ом. Добвление новой записи в DBGridEh ведет не сразу к добавлению в БД, а после нажатия клавиши [B]OK[/B] формы. В БД на поле таблице (с которой мы и работает через DBGridEh) наложено ограничение Not Null. Если бы при добавлении записи в DBGridEh она сразу же отправлялась в БД, то отловить момент добавления записи с пустым полем не было проблем. Но у меня транзакция потдвержается только после нажатия кнопки [B]OK, которая закрывает форму[/B]. Поэтому в БД попадают записи с пустым полем. Вообщем как на уровне проги проверять добавление или изменение записи, чтобы не оказалось пустого поля, ну соотвестсвенно выдавать пользователю сообщение о пустом поле.
ANB (2006-11-10 17:06:00) [1]
> А что за СУБД? можно триггером запретить.
Триггером некошерно. Зачем, если есть ограничения ?
Desdechado (2006-11-10 16:59:00) [2]> можно триггером запретить.
Одно другому не мешает.
Но доставать СУБД мелкими неурядицами недостаточно интеллектуального интерфейса я бы не стал.
Stanislav (2006-11-10 16:53:00) [3]А что за СУБД? можно триггером запретить.
Johnmen (2006-11-10 16:44:00) [4]
> Нет, я не так категоричен как он. :)Я иногда допускаю редактирование
> в гриде, если по-другому получается раково/неюзабельно или
> ломает привычный пользователю UI.
Ну слава аллаху :)
Добавлю, что редактировать-нередактировать зависит от конкретной задачи в конкретной предметной области.
ANB (2006-11-10 16:36:00) [5]
> DelphiLexx © (10.11.06 15:46) [7]
чек ограничение дополнительно наложи. И проверяй, что поле не равно ''.
ЗЫ. Вот оно, неудобство различия null и '' ! А сколько холиварили, что оракл зря их не различает.
Anatoly Podgoretsky (2006-11-10 16:13:00) [6]> Desdechado (10.11.2006 16:08:12) [12]
> Я иногда допускаю редактирование в гриде, если по-другому получается раково/неюзабельно .
Вот и я одно исключение у себя нашел.
Desdechado (2006-11-10 16:08:00) [7]> Ты преданный фанат MsGuns'а?
Нет, я не так категоричен как он. :)
Я иногда допускаю редактирование в гриде, если по-другому получается раково/неюзабельно или ломает привычный пользователю UI.
> OnAfterInsert данному поле присваивается значение 'Новый элемент'
goto Desdechado © (10.11.06 14:00) [4]
> А как надо?
Как задача стоит. Но предпочтительное отдельным формуляром (на той же форме или отдельной модальной), особенно если полей много и в гриде их все не видно по ширине. А на форме их можно разбросать так, чтобы удобно сгруппировать, красиво расставить и т.п.
Anatoly Podgoretsky (2006-11-10 16:00:00) [8]> DelphiLexx (10.11.2006 15:47:08) [8]
Скажем в форме, можно и в гриде, но надо много обработчиков писать
Anatoly Podgoretsky (2006-11-10 15:58:00) [9]> DelphiLexx (10.11.2006 15:46:07) [7]
Не редактируй в гриде.
Курдль (2006-11-10 15:48:00) [10]
> Desdechado © (10.11.06 14:00) [4]
> ЗЫ редактирование в гриде - ваще дурной тон
Полностью поддерживаю! Это им, пнимашь, не ёксель какой-то там!
Пусть заполнят формуляр полностью и безошибочно - тогда и данные в БД.
DelphiLexx (2006-11-10 15:47:00) [11]
> ЗЫ редактирование в гриде - ваще дурной тон
А как надо?
DelphiLexx (2006-11-10 15:46:00) [12]
> А под пустым полем подразумевается (NULL) или '' ?
Вот здесь-то и вся проблема. Что в БД наложено ограничение Not Null. При добавлении новой записи у меня в событии OnAfterInsert данному поле присваивается значение 'Новый элемент'. После этого пользователь может взять выделить данную фразу и удалить получится пустое поле и в БД занесется '', но не Null.
Anatoly Podgoretsky (2006-11-10 15:44:00) [13]> Johnmen (10.11.2006 15:23:05) [5]
У меня за последние 13 лет, только в одном месте так редактируется одна единственная таблица для администратора. И ничего, даже наоборот без проблем.
Johnmen (2006-11-10 15:23:00) [14]
> Desdechado © (10.11.06 14:00) [4]
> ЗЫ редактирование в гриде - ваще дурной тон
Ты преданный фанат MsGuns'а? :)
Desdechado (2006-11-10 14:00:00) [15]что мешает в BeforePost проверять правильность заполнения?
ЗЫ редактирование в гриде - ваще дурной тон
Stanislav (2006-11-10 13:50:00) [16]А под пустым полем подразумевается (NULL) или '' ?
Johnmen (2006-11-10 13:07:00) [17]
> наложено ограничение Not Null.
и
> в БД попадают записи с пустым полем.
Где-то здесь враньё :)
ЮЮ (2006-11-10 12:48:00) [18]
> Но у меня транзакция потдвержается только после нажатия
> кнопки [B]OK,
А открывается когда? А сервер какой? А может лучше кэшировать изменения в датасете, чем иметь такую длительную транзакцию?