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

Вниз

Обязательное поле....   Найти похожие ветки 

 
Express   (2005-12-18 18:33) [0]

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


 
mfender ©   (2005-12-18 18:50) [1]

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


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


> 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.


 
Desdechado ©   (2005-12-19 10:44) [3]

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


 
evvcom ©   (2005-12-19 10:47) [4]

Field.Required еще есть


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


> 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;


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

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

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

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


 
Johnmen ©   (2005-12-20 13:20) [7]

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


 
evvcom ©   (2005-12-20 14:07) [8]


> Express   (20.12.05 13:15) [6]

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


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

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


 
evvcom ©   (2005-12-20 14:28) [10]


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

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



Страницы: 1 вся ветка

Текущий архив: 2006.02.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
2-1138725144
Neo Trinitron
2006-01-31 19:32
2006.02.19
сортировка в TListViev


1-1137769002
Tristania
2006-01-20 17:56
2006.02.19
Работа с msi-форматом и инсталляция программы


15-1138594840
vidiv
2006-01-30 07:20
2006.02.19
Вопрос по MySQL: LEFT JOIN и RIGHT JOIN


15-1138270203
Тульский
2006-01-26 13:10
2006.02.19
новый сервис Delphimaster?


15-1138625475
syte_ser78
2006-01-30 15:51
2006.02.19
какого рекламодателя использывать?