Вниз
Скачать: CL | DM;

Как отловить Exception   Найти похожие ветки 

← →
Koala ©   (2004-08-25 10:52) [0]

Есть ХП для вставки новой запись, она проверяет на наличие дубликата записи, если нет, то запись вставляется, если да то высвечивается предупреждение о вставке дублирующейся записи.
Как отловить в программе это сообщение???

CREATE PROCEDURE PR_INSERT_CITY (
   IN_CITY_NAME VARCHAR(30),
   IN_USER_EDIT VARCHAR(20))
AS
begin
 /* Procedure Text */
 if (not exists(select 1 from tbl_ref_city
                where CITY_NAME = :IN_CITY_NAME)) then
 INSERT INTO TBL_REF_CITY(CITY_NAME, DATE_EDIT, USER_EDIT)
 VALUES (:IN_CITY_NAME, "NOW", :IN_USER_EDIT);
 else
  EXCEPTION EXC_NO_DBL_INS_CITY;
 suspend;
end


← →
Zacho ©   (2004-08-25 11:45) [1]

Так же, как и любой другой txception. RTFM  try .. except .. и т.п.
А вообще в данном случае процедура абсолютно не нужна, достаточно уникального индекса.


← →
Koala ©   (2004-08-25 13:48) [2]


> Zacho ©   (25.08.04 11:45) [1]



> А вообще в данном случае процедура абсолютно не нужна, достаточно
> уникального индекса.

Не понял... а можно по подробнее....


← →
LM2   (2004-08-25 13:55) [3]

Да проще возвращать значения, например -1, если такая запись существует!


← →
Skyle ©   (2004-08-25 14:08) [4]


> [2] Koala ©   (25.08.04 13:48)

Создать в таблице уникальный индекс, содержащий набор полей, по которым определяется уникальность (в данном случае CITY_NAME).
После этого проверка уникальности записи с таким значением индекса возлагается на СУБД, которая будет генерировать исключение.
И самопальная проверка станет ненужной.


← →
LM2   (2004-08-25 14:46) [5]

>>Skyle ©
Ага, только с регистром надо быть повнимательнее, а то получаться два города Москва и МОСКВА !!!))))))))


← →
Skyle ©   (2004-08-25 14:48) [6]


>  [5] LM2   (25.08.04 14:46)

Как настроишь...


← →
Koala ©   (2004-08-25 15:10) [7]

Спасибо всем... так и сделал...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
14-1094732548
вразлет
2004-09-09 16:22
2004.09.26
Средства для тестирования программ


4-1092944248
surkis
2004-08-19 23:37
2004.09.26
ServiceApplication


6-1090365718
Лев Ландау
2004-07-21 03:21
2004.09.26
Конкретный пример заполнения http- форм ! (?)


1-1094717455
312kbps
2004-09-09 12:10
2004.09.26
Как называется событие ?


6-1090318102
OmeGA[11]
2004-07-20 14:08
2004.09.26
Как перехватить запрос по 80 порту




   Наверх