Форум: "Базы";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
ВнизКак избежать исключения? Найти похожие ветки
← →
denisych (2005-01-03 23:29) [0]Здравствуйте !
Delphi7 + FIBPlus + TDBEDIT
Поле в таблице Firebird - DATE.
Если на форме ввести в DBEDIT неправильную дату , то вылетает
EConvertError.
Как проверить дату ( типа OnValidate ) до исключения ?
С уважением , Денисыч
← →
msguns © (2005-01-04 10:24) [1]1. Отказаться от редактирования в DB-aware контролах
2. Использовать соответствующие события DB-Aware контролов
3. Юзать гриды, где все это сделано "добрыми умными" дядями.
← →
denisych (2005-01-07 23:58) [2]
> 1. Отказаться от редактирования в DB-aware контролах
Вообще - то я пишу так , как этого хочет клиент , а не так как это у меня получается
> 2. Использовать соответствующие события DB-Aware контролов
Конкретно. Умную мину сделать всегда легко. Что их надо использовать я и сам знаю , но
перехватывал я разные события разных элементов( начиная от OnExit DBEDIT и заканчивая OnPost Dataset ) , но все они
возникают ПОСЛЕ EConvertError.
> 3. Юзать гриды, где все это сделано "добрыми умными" дядями.
Гриды я юзаю постоянно , но если все элементы DBEDIT , то
грид для даты тут мне совсем не подходит. Если бы можно было в данном случае использовать грид , то на форум я бы не писал.
← →
sniknik © (2005-01-08 00:42) [3]> Что их надо использовать я и сам знаю , но
> перехватывал я разные события разных элементов( начиная от OnExit DBEDIT и заканчивая OnPost Dataset ) , но все они
> возникают ПОСЛЕ EConvertError.
попробуй OnGetText у поля, может и подойдет.
← →
sniknik © (2005-01-08 00:46) [4]сорри, тебе же не чтение а запись нужно перехватить тогда OnSetText... хотя не уверен. попробуй в обшем. (я не проверял)
← →
denisych (2005-01-08 17:09) [5]
> нужно перехватить тогда OnSetText...
Спасибо. Толковый совет, но я это пробовал. OnSetText хорошо работает , когда у тебя дата введена в правильном формате, но
такой даты не существует ( 33.33.33 ). А если вводишь неправильный формат ( 33.__.33 ) , то вылетает что-то типа
invalid input value , хотя точно не помню и это исключение возникает раньше всего.
Временно я написал глобальный обработчик Application.OnException , но если у кого-то есть идеи лучше ,
то буду благодарен за совет.
← →
sniknik © (2005-01-08 18:15) [6]чегото нифига не пойму, получить управление раньше исключения, получили... но не подщодит потому как исключение... (бред имхо)
тум же все в твоих руках...
вот так что тоже исключениеprocedure TForm1.ADODataSet1BirthDateSetText(Sender: TField;
const Text: String);
begin
Sender.AsDateTime:= StrToDateTimeDef(Text, Now());
end;
и учти, на этот раз я уже проверил... ;о))
← →
Дмитрий В. Белькевич (2005-01-09 06:21) [7]Может имеет смысл вообще от dbedit"а отказаться? Edit, а потом ручками одну команду на заполнение поля при открытии формы, при закрытии - вернуть данные в базу. Может так проще будет?
← →
Экспериментатор (2005-01-10 11:23) [8]Такой вариант у меня тоже возник.
Если уж такие траблы, то
почему бы не вводить дату в обычный едит, на событие OnChange навесить проверку и передачу его в табличку
← →
msguns © (2005-01-10 11:57) [9]>denisych (07.01.05 23:58) [2]
>> 1. Отказаться от редактирования в DB-aware контролах
Вообще - то я пишу так , как этого хочет клиент , а не так как это у меня получается
А клиент что, селезенкой чувствует, что поле, куда он вводит, "приклеено" к датасету ?
>> 2. Использовать соответствующие события DB-Aware контролов
>Конкретно. Умную мину сделать всегда легко. Что их надо использовать я и сам знаю , но
перехватывал я разные события разных элементов( начиная от OnExit DBEDIT и заканчивая OnPost Dataset ) , но все они
возникают ПОСЛЕ EConvertError.
Когда писал этот пост, мина у меня была вовсе не "умная". А вот события у контролов есть разные, в том числе и OnKeyPress/OnKeyDown
>> 3. Юзать гриды, где все это сделано "добрыми умными" дядями.
>Гриды я юзаю постоянно , но если все элементы DBEDIT , то
грид для даты тут мне совсем не подходит. Если бы можно было в данном случае использовать грид , то на форум я бы не писал.
А вот опять же объясни дураку (мне то есть) КАК ЮЗЕР РАЗЛИЧАЕТ DBEDIT ОТ DBCTRLGRID ? Почему свет сошелся клином на dbEdit`ах я все же не понял (хотя и пытался при этом делать умное лицо)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c