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