Показать сообщение отдельно
Старый 13.02.2007, 16:05   #4  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от Smith Посмотреть сообщение
Приветствую всех!

Есть необходимость вставить данные в таблицу, данные могут повторяться в ключевых полях, соответственно при вставке аксапта будет ругаться, что такая запись уже есть. Можно ли как-то отловить именно это исключение (т.е. неуникальность ключа) и на основе этого сказать аксапте, чтоб не ругалась, а продолжала молча вставлять данные дальше, игнорируя строку с дублированными значениями разумеется?

Примерно так я это вижу:
try
{
bankGroup.BankGroupId = data;
bankGroup.BankBIC_RU = data;
bankGroup.insert();
}
catch(exception::Error) //здесь как-то конкретизировать (если поймали неуникальность ключа,то..)
{
//не выводить инфо с ошибкой и не выходить из цикла
}
Дополнение: перехват исключения в данном случае работает, если не начата транзакция вне блока try/catch.
За это сообщение автора поблагодарили: Morpheus (1).