Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.04 c
2-1138896565
park
2006-02-02 19:09
2006.02.19
Не запускается скомпилированая программа


15-1138534223
Kerk
2006-01-29 14:30
2006.02.19
Я сейчас убью соседей


15-1138138055
Германн
2006-01-25 00:27
2006.02.19
Мультизагрузчик ОС


1-1137570215
ОлеЛу
2006-01-18 10:43
2006.02.19
компиляция без IDE


2-1138826027
serko
2006-02-01 23:33
2006.02.19
Form





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский