> Лучше бы сказал, зачем тебе это нужно.

Ок. Есть большая система. Понадобилось
реализовать функцию блокировки
периода. Заводить для хранения даты
отдельную таблицу не хотелось, так как
и так все приходится оптимизировать
по-максимуму для того, чтобы достичь
приемлемой производительности на
базах в 8-10  Гб и 40-60 одновременных
подключениях. Было выработано
следующее решение: хранить дату
блокировки в генераторе, на четыре
таблицы (документы, проводки,
складское движение) сделать по три
триггера проверяющих дату операции
следующим образом:

IF(CAST(NEW.datefield AS INTEGER) < GEN_ID(gd_g_block, 0)) THEN
  EXCEPTION...

До ФБ2 все работало. А теперь кидает
ошибки. Самое интересное, что база
отресторилась нормально. Т.е. с точки
зрения компилятора BLR тут все
нормально, а ошибка происходит в
момент выполнения.

Ответить