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

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

Key violation


Ihtiandr ©   (2003-01-20 14:35:00) 

Для того чтобы предотвратить ошибку: key violation в каком событии нужно перехватить эту ошибку. Чтобы появлялось сообщение не "Key violation", а, например, "Запись уже присутствеет".


Ihtiandr   (2003-01-20 15:58:00) [1]

Я потом сам уже увидел.
Спасибо.


Reindeer Moss Eater   (2003-01-20 15:46:00) [2]

Оно выводит сообщение если только в одной колонке запись совпадает.
Стало быть первичный ключ - одно единственно поле


Delirium^.Tremens   (2003-01-20 15:43:00) [3]

gek © (20.01.03 15:31)
> Ну а как взаимосвязаны события и исключения?
> Да никак.


Зачем же так категорично? Вот пример:


TUpdateErrorEvent = procedure(DataSet: TDataSet; E: EDatabaseError; UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction) of object;

property OnUpdateError: TUpdateErrorEvent;

DataSet.OnUpdateError - event (событие)
Один из параметров имеет тип EDataBaseError - исключение
Связаны ли они? Думаю да.


Ihtiandr   (2003-01-20 15:42:00) [4]

Пишу в onPostError операторы

if Pos("Key violation",E.Message)<>0 then
begin
showmessage("qq");
abort;
end;

Оно выводит сообщение если только в одной колонке запись совпадает.


gek   (2003-01-20 15:31:00) [5]


> Кроме того, вы тут предлагаете обработку исключений, а
> вас про события спрашивали


Ну а как взаимосвязаны события и исключения?
Да никак. Поэтому так и ответили про перехват


Reindeer Moss Eater   (2003-01-20 15:27:00) [6]

Кроме того, вы тут предлагаете обработку исключений, а вас про события спрашивали


Reindeer Moss Eater   (2003-01-20 15:26:00) [7]

Событие OnPostError не возникнет, если CachedUpdates.
Событие OnUpdateError не возникнет, если нет CachedUpdates.


gek   (2003-01-20 15:23:00) [8]

Наверное все-таки правильней

> Mike Kouzmine (20.01.03 15:13)
> Можно или по типу exceptiona, можно и так
> on E;Exception do
> begin
> if (Pos("Key viola",E.Message)) then
> end


Mike Kouzmine   (2003-01-20 15:14:00) [9]

try
except
onPostError


Reindeer Moss Eater   (2003-01-20 15:13:00) [10]

А если нет никакого события? А ошибка-то обязательно будет.


Mike Kouzmine   (2003-01-20 15:13:00) [11]

Можно или по типу exceptiona, можно и так
on E;Exception do
begin
if (Pos("Key viala",E.Message)<>0 then
end


Ihtiandr   (2003-01-20 15:12:00) [12]

Ну так как же перехватить? При каком событии?


Reindeer Moss Eater   (2003-01-20 14:37:00) [13]

Для того чтобы предотвратить ошибку: key violation в каком событии нужно перехватить эту ошибку
Если ты перехватил эту ошибку, будь уверен, ты её не предотвратил :)


Наверх

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