Конференция "Базы" » Constraint, Transaction, Exception [D6, IB6.x]
 
  • Drowsy (04.09.08 14:25) [0]
    Можно на сервере в тригере BIO перехватывать внутренние исключения, вызываемые Constraint-ами или нарушениями ссылочной целостности (чтобы эаменить созданными с понятной диагностикой)?
    Почему не работает, например :

    /* Trigger: LOT_AI0 */
    CREATE TRIGGER LOT_AI0 FOR LOUT
    ACTIVE BEFORE INSERT POSITION 0
    AS
    begin
    if( gdscode = 335544558) then exception my_exception  ;
    when any do exception my_exception  ;
    end
    ^
  • а не пробовал AFTER? видимо, еще ничего не нарушилось ДО вставки, потому и не срабатывает
  • Drowsy (04.09.08 14:36) [2]
    Попробовал AFTER.
    Всё равно не перехватывает стандартные исключения. :(
  • Johnmen © (04.09.08 14:41) [3]
    А у тебя и нет исключений в триггерах - перехватывать нечего.
    На тему русификации сообщений сервера читай http://www.ibase.ru
  • Drowsy (04.09.08 14:51) [4]
    Johnmen, я там смотрел, не нашёл такого раздела.
    Плиз, если можешь, укажи точнее, где!!!
  • Johnmen © (04.09.08 15:04) [5]

    > Drowsy   (04.09.08 14:51) [4]

    Там есть поиск.
    Ключевые слова сообщения об ошибках русский например...
  • Drowsy (04.09.08 15:31) [6]
    Нет там ничего...
    Люди - человеки, где и как на сервере перехватывать исключения,  вызываемые Constraint-ами ? Может примеры или толковые ссылки есть?
  • Правильный$Вася (04.09.08 15:35) [7]

    >  где и как на сервере перехватывать исключения,  вызываемые
    > Constraint-ами

    с какой целью?
  • Drowsy (04.09.08 15:38) [8]
    чтобы эаменить своими, с понятной пользователю, диагностикой
  • Правильный$Вася (04.09.08 15:53) [9]
    диагностика на уровне таблиц яйца выеденного не стоит
    имеет смысл диагностика на уровне транзакций
    тогда оберни транзакцию в ХП, а там поставь обработчики в
    begin-when-end

  • Drowsy (04.09.08 15:58) [10]
    Что значит "транзакцию в ХП"?
  • Правильный$Вася (04.09.08 16:00) [11]
    это значит, что если тебе нужно делатьмного операций с данными в рамках транзакции, то засунь все эти операции в ХП и вызывай ее, а диагностику уже в ней можешь делать и сразу же реагировать корректно в ней же - или подымать исключение в программу, или исправлять что-то на лету (в секции when) с повторной попыткой
  • Drowsy (04.09.08 16:11) [12]
    Ага, вроде понял. Попробую чичас.
    Спасибо, Правильный$Вася!
 
Конференция "Базы" » Constraint, Transaction, Exception [D6, IB6.x]
Есть новые Нет новых   [134473   +28][b:0][p:0.001]