Форум: "Базы";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизОбязательное поле.... Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c