Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

Как программно в 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.055 c
1-1165580125
NeoOrc
2006-12-08 15:15
2007.02.04
32-х битная иконка в imagelist


3-1163058620
O.O
2006-11-09 10:50
2007.02.04
UPDATE


15-1168847586
novill
2007-01-15 10:53
2007.02.04
D6 Вертикальное выделение, как отключить?


15-1168589311
WondeRu
2007-01-12 11:08
2007.02.04
Парсинг


15-1168621719
AntiUser
2007-01-12 20:08
2007.02.04
Обход ограничений безопасности в FreeBSD