Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

Не могу поймать EDatabaseError   Найти похожие ветки 

 
Vlad40   (2004-02-25 14:34) [0]

Помогите, плз. При отсутствии значения в поле Required TTable происходит exception и выводится соответствующее сообщение с именем поля. Я хочу заменить стандартное сообщение на свое, но поймать exception я не могу. Ни блок try, ни что другое не помогает. Наверное это просто, но не могу поймать... Заранее спасибо.


 
Zacho ©   (2004-02-25 14:37) [1]

См. TDataSet.OnPostError и т.п.


 
Vlad40   (2004-02-25 14:41) [2]

Пробовал OnPostError и т.п. Проскакивает без всякой реакции


 
Zacho ©   (2004-02-25 14:48) [3]

Не знаю. У меня - работает.


 
Vlad40   (2004-02-25 14:53) [4]

Может я что-то не так делаю. В обработчике пишу

procedure TDM.tblProducersPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
begin
   ShowMessage("My error");
   Action:=daAbort;
end;

Ставлю точку останова. Не останавливается и выдает стандартное сообщение


 
Vlad ©   (2004-02-25 14:58) [5]

delphi>tools>debugger options>language exceptions
убрать флажок stop on delphi exceptions


 
Vlad40   (2004-02-25 15:01) [6]

И что это мне дало? Единственное что изменилось, это не происходит выхода в среду Delphi в режиме отладки. А остальное без изменения. Мне же надо вставить свое сообщение при возникновении exception


 
DenK_vrtz ©   (2004-02-25 15:07) [7]

см.

Application.OnException
Application.ShowException


 
Vlad ©   (2004-02-25 15:14) [8]


> Vlad40   (25.02.04 15:01) [6]

Таки на OnPostError не попадаем ?
Есть более простой вариант: на событие BeforePost для всех полей которые Required проверять заполнены они или нет, если нет, выдавать ругательский мессадж


 
Vlad40   (2004-02-25 15:19) [9]


> Vlad ©   (25.02.04 15:14) [8]

Нет, ну так проверять можно что угодно, это понятно. Хотелось использовать стандартные средства

> DenK_vrtz ©   (25.02.04 15:07) [7]

Спасибо, про это забыл. То, что надо


 
Vlad40   (2004-02-25 15:56) [10]

Еще вопрос - а есть ли возможность определить, какое поле вызвало это исключение?


 
DenK_vrtz ©   (2004-02-25 16:01) [11]

Field "NAME" must have a value

как разобрать строку надуюсь объяснять не надо? :)


 
Val ©   (2004-02-25 16:02) [12]

При отсутствии значения в поле Required TTable происходит exception и выводится соответствующее сообщение с именем поля.
???


 
Vlad40   (2004-02-25 16:03) [13]

Спасибо, не надо ;-). Думал, есть другие методы.


 
Vlad40   (2004-02-25 16:05) [14]

Кстати в сообщении указывается не имя поля, а DisplayName


 
Val ©   (2004-02-25 16:06) [15]

>Vlad40   (25.02.04 16:05) [14]
а зачем пользователю видеть ваше fieldname?


 
Val ©   (2004-02-25 16:06) [16]

>Vlad40   (25.02.04 16:05) [14]
а зачем пользователю видеть ваше fieldname?


 
Vlad40   (2004-02-25 16:14) [17]

Пользователю ест-но не надо. Мне надо. Ладно, это уже не важно.


 
Vlad ©   (2004-02-25 16:17) [18]


> Vlad40   (25.02.04 16:14) [17]

Я предлагал тебе простой и удобный вариант, ты сам себе задачу усложнил


 
Ross ©   (2004-02-25 18:07) [19]

Vlad40   (25.02.04 14:53) [4]

procedure TDM.tblProducersPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
begin
  E.Create("My error");
  Dataset.cancel;//Отменяет изменение
end;


 
Vlad40   (2004-02-26 11:49) [20]


> Ross

Данная ошибка (незаполнение требуемого поля) не порождает событие OnPostError. Поэтому Ваше предложение не подходит. Но проблема уже решена



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

Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.036 c
1-1078939007
$tranger
2004-03-10 20:16
2004.03.28
Загурузка параметров из файлов, в частности INI


14-1078050891
VMcL
2004-02-29 13:34
2004.03.28
Навеяно постом


4-1074002947
andrewled
2004-01-13 17:09
2004.03.28
Как получить имена пользователей в XP?


8-1068309751
g-l-u-k
2003-11-08 19:42
2004.03.28
TActiveMovie


1-1078396162
PolarS
2004-03-04 13:29
2004.03.28
Как перехватить сообщение при прокрутке колеса мыши?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский