как отловить ошибку: "Cannot insert duplicate key row i
Модераторы: m0p3e, edward_K, Модераторы
как отловить ошибку: "Cannot insert duplicate key row i
Добрый вечер
Подскажите пожалуйсто как отловить ошибку: "Cannot insert duplicate key row in object 'Table_Name' with unique index 'Index_Name'", чтобы представлять ее пользователю на русском языке.
Подскажите пожалуйсто как отловить ошибку: "Cannot insert duplicate key row in object 'Table_Name' with unique index 'Index_Name'", чтобы представлять ее пользователю на русском языке.
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
В итоге выдастся и Ваше сообщение и сообщение системное...coolibin писал(а):Например:
if(insert current Table_name <> tsOk)
message('Ты че, чудак, одинаковые записи генеришь?!');
Здесь необходимо использовать обработчик исключений (соответственно заглушить стандартое сообщение, обработав стандартное исключение, отвечающее за данное сообщение, выдав собственное).
Уверен?Maverick писал(а):В итоге выдастся и Ваше сообщение и сообщение системное...coolibin писал(а):Например:
if(insert current Table_name <> tsOk)
message('Ты че, чудак, одинаковые записи генеришь?!');
Здесь необходимо использовать обработчик исключений (соответственно заглушить стандартое сообщение, обработав стандартное исключение, отвечающее за данное сообщение, выдав собственное).
Вот тебе пример:
interface test1 'Test1' EscClose;
show at (,,,);
table struct tblTest1
(
Field1 : comp,
Field2 : string[10]
)
with index
(
IND01 = Field1 (unique)
)
;
create view
as select *
from
tblTest1
;
HandleEvent
cmInit:
{
ClearBuffer(#tblTest1);
tblTest1.Field1 := 11;
tblTest1.Field2 := 'First record';
if (insert current tblTest1 <> tsOk)
message('Trouble');
else
message('First record's inserted');
ClearBuffer(#tblTest1);
tblTest1.Field1 := 11;
tblTest1.Field2 := 'Second record';
if (insert current tblTest1 <> tsOk)
message('Trouble');
else
message('Second record's inserted');
_loop tblTest1
message(tblTest1.Field2);
Abort;
}
end;
end.