Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обязательное поле.... [D6, D7, Paradox]


Express ©   (2005-12-18 18:33:00) 

Помогите, у меня в таблице есть обязательные поля, как мне обработать ошибку, если пользователь не заполнил это поле??????


evvcom   (2005-12-20 14:28:00) [1]


> Есть еще один вариант - использовать OnValidate-событие
> интересующих полей

Это для более сложных случаев. Здесь вообще фсё просто.


Виталий Панасенко   (2005-12-20 14:14:00) [2]

Есть еще один вариант - использовать OnValidate-событие интересующих полей... Может, опять не проснулся...


evvcom   (2005-12-20 14:07:00) [3]


> Express   (20.12.05 13:15) [6]

А [4] попал в full ignore? А как тебе идея в AfterOpen сделать
MyDataSet.FieldByName('MyField').Required := True;?


Johnmen   (2005-12-20 13:20:00) [4]

Да-да, перед постом делать нужные тебе проверки. И принимать решение - постить или сообщать и давать исправиться...


Express   (2005-12-20 13:15:00) [5]

Народ свем спасибо за советы!!!, но они все равно не помогли справиться с этой проблемой!!!! Получается так, что OnPostError не успевает обрабатывать эту ошибку(хотя мне кажется что именно он должен это делать), а ОnBeforePost как раз вызывается перед тем как происходит эта ошибка....

У меня есть одно имея, но она мне тоже не нравиться: Если получать список всех поле в обработчике ОnBeforePost, проверять на обязательное заполнение и если что то не то выводить сообщение и все такое....

Как вам эта мысль???? мне по прежнему нужны ваши советы!!!!!!!


Виталий Панасенко   (2005-12-19 11:05:00) [6]


> Desdechado ©   (19.12.05 10:44) [3]
> Виталий Панасенко
> не проснулся? :)
> ОnBeforePost и OnPostError - разные вещи
> проверять надо в ОnBeforePost, как правильно выше было сказано

Но в Д5 это не так... :-))))
procedure TDataSet.Post;
begin
 UpdateRecord;
 case State of
   dsEdit, dsInsert:
     begin
       DataEvent(deCheckBrowseMode, 0);
       CheckRequiredFields;
       DoBeforePost;
       CheckOperation(InternalPost, FOnPostError);
       FreeFieldBuffers;
       SetState(dsBrowse);
       Resync([]);
       DoAfterPost;
     end;
 end;
end;


evvcom   (2005-12-19 10:47:00) [7]

Field.Required еще есть


Desdechado   (2005-12-19 10:44:00) [8]

Виталий Панасенко
не проснулся? :)
ОnBeforePost и OnPostError - разные вещи
проверять надо в ОnBeforePost, как правильно выше было сказано


Виталий Панасенко   (2005-12-19 09:20:00) [9]


> mfender ©   (18.12.05 18:50) [1]
> Если пользователь не заполнил поле, то его нужно заполнить,
>  иначе теряется смысл. Проверять всё это надо, поставив
> обратчик на onBeforePost.

Если мне память не изменяет, то это событие срабатывает ПОСЛЕ проверки на обязательность заполения.. Т.е. ошибка все равно (сообщение) будет...
OnPostError:
Occurs when an application attempts to modify or insert a record and an exception is raised.

Delphi syntax:

property OnPostError: TDataSetErrorEvent;

C++ syntax:

__property TDataSetErrorEvent OnPostError = {read=FOnPostError, write=FOnPostError};

Description

Write an OnPostError event handler to handle exceptions that occur when an attempt to post a record fails.


mfender   (2005-12-18 18:50:00) [10]

Если пользователь не заполнил поле, то его нужно заполнить, иначе теряется смысл. Проверять всё это надо, поставив обратчик на onBeforePost.


Наверх

Титульная страница Поиск, карта сайта Написать письмо