Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перехватить ошибку Key violation [D6, Paradox]


Страницы:   1 2

иван8511 ©   (2006-08-25 15:51:00) 

Подскажите, пожалуйста, как отследить (перехватить) ошибку Key violation. Т.е. чтоб не выскакивало окно с предупреждение и кнопкой ОК, а самому обработать это событие. Например, чтоб программа автоматически эту запись удалила, без предупреждения.
Спасибо.


Sergey13   (2006-08-28 14:32:00) [1]

> [20] Anatoly Podgoretsky ©   (28.08.06 14:16)

Я ж говорю - если операция Б дорогостоящая, как и ее откат, то если после аперации А отсеется 99.9% заведомо непроходных вариантов, то не вижу причин ее не делать.


Anatoly Podgoretsky   (2006-08-28 14:16:00) [2]

Приведи пример, когда будет выгодно А+Б против Б, с приведением кода конечно.


Sergey13   (2006-08-28 14:02:00) [3]

> [18] Anatoly Podgoretsky ©   (28.08.06 13:58)

Да, это так, но иногда бывает выгодно.


Anatoly Podgoretsky   (2006-08-28 13:58:00) [4]

Можешь использовать, только все равно потом все проверки по полной, как и без нее.


Sergey13   (2006-08-28 13:01:00) [5]

> [16] Anatoly Podgoretsky ©   (28.08.06 12:30)

Теоретически может быть. Практически - не вижу причин не использовать, особенно если предпроверяемая операция достаточно дорогая.


Anatoly Podgoretsky   (2006-08-28 12:30:00) [6]

Sergey13 ©   (28.08.06 09:05) [14]
Конечно, ее полезность стремится к нулю, право на существование имеет только в однопользовательской среде.


evvcom   (2006-08-28 09:12:00) [7]

Дык, key violation -то парадокс выдает? Запись же и так не добавится. Не надо будет ничего удалять. try except, имхо, вполне достаточно.


Sergey13   (2006-08-28 09:05:00) [8]

> [12] Anatoly Podgoretsky ©   (25.08.06 17:02)

В смысле? Предпроверка - болото?


иван8511   (2006-08-25 17:24:00) [9]

Спасибо.

try
тут код где появится ошибка
except
тут делаешь что-то в случае ошибки
end;

Работает.


Anatoly Podgoretsky   (2006-08-25 17:02:00) [10]

Sergey13 ©   (25.08.06 16:51) [6]
Sergey13 ©   (25.08.06 17:00) [11]
Не гони его в болото.
Бессмысленная операция


Sergey13   (2006-08-25 17:00:00) [11]

> [7] иван8511   (25.08.06 16:55)

Такая логика допустима, ИМХО, если процент неудачных попыток очень невелик. Если допустим это ввод юзера, то лучше проверить заранее.


StriderMan   (2006-08-25 16:59:00) [12]

end
забыл


StriderMan   (2006-08-25 16:59:00) [13]

что вы человека мучаете

try
 тут код где появится ошибка
except
 тут делаешь что-то в случае ошибки
end;


ANB   (2006-08-25 16:57:00) [14]


> иван8511   (25.08.06 16:55) [7]

Сначала выполнить запрос на дубль. Если чего вернет - ругаться и не давать вставлять.
Или перехватывай ошибку и выводи вместо нее свой текст.


иван8511   (2006-08-25 16:55:00) [15]

А как ее сделать? Тем более если таблица большая? Все равно надо снача попытатьмя записать а потом если не получится принимать меры


Sergey13   (2006-08-25 16:51:00) [16]

> [5] иван8511   (25.08.06 16:48)

А не пробовал в принципе не допускать такую ситацию. Например перед потенциально опасным действием сделать соответствующую проверку.


иван8511   (2006-08-25 16:48:00) [17]

Я согласен. Вот поэтому и спрашиваю как мне перехватить эту ошибку и вместо (непонятного для простого пользователя) сообщения Key violation написать свое по русски типа "Вы ввели неправильий (повторяющийся) номер записи", а потом эту неправильную запись очистить и предложить ввести по новому.


Anatoly Podgoretsky   (2006-08-25 16:37:00) [18]

Конечно не хорошо, но каждый ССЗБ


evvcom   (2006-08-25 16:10:00) [19]

> [0] иван8511   (25.08.06 15:51)
> Например, чтоб программа автоматически эту запись удалила,
> без предупреждения.

Вообще так не хорошо в большинстве случаев. Пользователь должен знать, что он чего-то не то делает.


Anatoly Podgoretsky   (2006-08-25 15:56:00) [20]

except


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо