Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2011, 09:00   #1
cliv
Пользователь
 
Регистрация: 30.06.2011
Сообщений: 13
По умолчанию проверка валидности введеного значения

Добрый день всем!
Нужна помощь - В DbGridEh происходит редактирование полей типа DateTime
если ввести значение некорректно например строку "222222222222222" программа вывалится с ошибкой. То же самое с некорректным вводом в числовое поле.
собственно вопрос - в каком событии (dbGrida) можно провести проверку валидности ввденого значения

Ввод значений через отделные контролы не предлагать - это не приемлимо по стилю программы.

Может кто то уже решал аналогичную проблему?
cliv вне форума Ответить с цитированием
Старый 20.07.2011, 14:51   #2
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

А при чем здесь грид? У него совершенно иные задачи! Уж лучше тогда обрабатывай через try...except или через события датасета.
Баламут вне форума Ответить с цитированием
Старый 20.07.2011, 16:27   #3
cliv
Пользователь
 
Регистрация: 30.06.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Баламут Посмотреть сообщение
А при чем здесь грид? У него совершенно иные задачи! Уж лучше тогда обрабатывай через try...except или через события датасета.
вопрос звучал так - В КАКОМ СОБЫТИИ dbgrid (или любого другого модуля) это можно сделать ибо ошибка возникает в главной форме и мне не понятно какой собственно код я могу всунуть между try и except
cliv вне форума Ответить с цитированием
Старый 20.07.2011, 16:52   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

OnDataChange event (TDataSource) F1
Цитата:
Occurs when the data in a record has changed, either due to field edits or moving the cursor to a new record.
OnValidate event (TField) F1

BeforePost event (TDataSet) F1
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 20.07.2011 в 17:02.
evg_m вне форума Ответить с цитированием
Старый 21.07.2011, 00:21   #5
cliv
Пользователь
 
Регистрация: 30.06.2011
Сообщений: 13
По умолчанию

спасибо evg_m за ответ по существу!

В моем конкретном случае проблема аварийного завершения программы в случае не корректного ввода даты в поле dbGridEh (ошибка конвертации) решилась вызывом пустой OnSetText компонента DataSource. (внутри процедуры нужно поставить хотя бы коментарий типа //бла бла)
Редактирование поля типа DateTime в dbGridEh при этом стало происходить так же как при вызове самостоятельного контрола DbEditDtataTime - ввести не правильное значение просто невозможно. В любом случае введеное значение будет преобразовано в дату или значение поля останется без изменений.
Видимо есть некоторый баг в библиотеке EhLib.
При использовании стандартного dbGrid рекомендую для проверки использовать указаное evg_m событие OnChange компонента DataSource
тему можно закрыть - всем спасибо!
cliv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка валидности ICQ номеров jone Работа с сетью в Delphi 14 19.06.2012 20:54
Проверка значения в ini файле darvin232 Общие вопросы Delphi 2 10.04.2011 17:24
Проверка изменяющегося значения ячейки vanandr91 Microsoft Office Excel 3 16.11.2010 19:04
Ошибка валидности в коде Winlook HTML и CSS 4 27.02.2010 22:20
Проверка введенного значения yourself Microsoft Office Excel 4 21.04.2008 18:40