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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2009, 15:27   #1
DuM4uK
Пользователь
 
Регистрация: 29.09.2009
Сообщений: 32
Печаль Проблема с ошибкой в бд (ПАРАДОКС)

Здравствуйте уважаемые форумчане.

В общем сделал простенькую бд(paradox). Вывожу через DBGrid.
Определил некоторые столбцы обязательными для заполнения. Если я не заполню в одном из них строку, то вылетает ошибка "Field 'F.I.O' must have а value". Что за ошибка это мне конечно же известно.

Так вот такой Вопрос:
Как мне перехватить эту ошибку и выдать свою???

Если можно по подробнее или на примере.

Заранее благодарен.

Последний раз редактировалось DuM4uK; 01.10.2009 в 15:44.
DuM4uK вне форума Ответить с цитированием
Старый 01.10.2009, 15:42   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Если я не заполню в одном из них строку
Код в студию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2009, 15:59   #3
DuM4uK
Пользователь
 
Регистрация: 29.09.2009
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код в студию.
Извеняюсь за наглость, не в обиду.
Дело не в коде тогда бы я не спрашивал. Дело в том что когда вылетает ошибка в Delphi не показывается точка останова на каком этапе отладки программы вылетает ошибка.
Что Вы по этому поводу думаете???
DuM4uK вне форума Ответить с цитированием
Старый 01.10.2009, 16:04   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

чтоб перехватить сообщение об ошибке нужно лезть в компонент (обычно там генерируют E.Exception.create) котрий вы юзаете или ставить хук на все сообщения приложения

могу привести пример, что в некоторых есть свойства и параметры в обработчике скажем OnERROR которыми можно управлять... для примера
или юзайте try except тут ваше сообщение end - последнее не факт что сработает, зависит от конкретных ваших действий... так что код в студию
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 01.10.2009 в 16:09.
raxp вне форума Ответить с цитированием
Старый 01.10.2009, 16:54   #5
DuM4uK
Пользователь
 
Регистрация: 29.09.2009
Сообщений: 32
Радость

Вот нашол решение своей проблемы "универсальный Перехват ошибок DBEngine" если кому-то понадобится.
Код рабочий 100%, проверенно мной.

Цитата:
{Секция Interface}
procedure HandleException(Sender: TObject; E: Exception);

{Секция Implementation}
procedure TForm1.HandleException(Sender: TObject; E: Exception);
var err : DBIResult;
begin

if E is EDBEngineError then begin
err := (E as EDBEngineError).errors[(E as EDBEngineError).errorcount-1].errorcode;
if (err = DBIERR_KEYVIOL) then
showMessage('Ошибка Key violation!')
else if (err = DBIERR_LOCKED) then
showmessage('Запись блокирована другим пользователем')
else if (err = DBIERR_FILELOCKED) then
showmessage('Таблица блокирована кем-то еще')
else
showmessage('Другая ошибка DB')
end
else
showmessage('Упс!: '+E.Message);
end;
регестрируем обработчик исключений:

Цитата:
procedure TForm1.FormCreate(Sender: TObject);
begin

Application.onException:=HandleExce ption;
end;
И последний штрих не забудте включить DBIERRS в список используемых модулей. Чтобы выше указанный код заработал.

Последний раз редактировалось DuM4uK; 02.10.2009 в 08:25.
DuM4uK вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парадокс Монти Холла Alex2008 Свободное общение 79 21.09.2010 19:42
Помогите с ошибкой Bigtyoma Общие вопросы Delphi 1 24.12.2008 19:48
помогите с ошибкой Titan123 Общие вопросы Delphi 9 18.07.2008 15:12
Как прописать алиас в коде проги(компонента TABLE, бд парадокс) sashaslam БД в Delphi 2 07.07.2008 13:42