Страница 1 из 1

изменение словаря, тригеры

Добавлено: 26 июн 2009, 08:09
Hmyrii
Всем привет!
Помогите кто "могите".
Идет разработка нового модуля для автоматизации абонентского отдела гор. Водоконала. Модуль запихан в партнерский. Сделано уже много. Добавлены таблицы в словарь, пишутся фейсы с нужной бизнес логикой.
Встала нужда в навешивании тригеров. Хотелось бы его навесить средствами VIP. Прочитана дока. На стандартный таблы все работает как часы. А вот на те что я затолкал в словарь не выходит.

вот скрипт одной таблицы

Код: Выделить всё

Create Table D_NA_Abo.NA_Abonents "НА - абоненты"
  With Table_Code = 10604
  With Replace
(
  Nrec             : comp                   "Номер записи"
 ,Descr            : tDescr                 "Пользователь"
 ,DesGr           : tDesGr                 "Группа пользователей"
 ,cFormSob      : ref(NA_Catalogs)   "форма собственности"
 . . . . . . . . . . . 
)
with index
(
  NA_Abonents01 = NRec(Unique, Surrogate, Journal)
);
таблица создана, фейсы с ней работают без проишествий.
пытаюсь создать тригер

Код: Выделить всё

handler with replace tBeforeDeleteAbonents on trigger NA_Abonents before delete [99]
action
{
    // . . . . . . 
}
при компиляции вываливается с ошибкой "использование незарегестрированой таблицы, код ошибки [304]"
знает кто нить как это побороть, где и как надо зарегить мои таблы?

Добавлено: 26 июн 2009, 09:58
edward_K
1. Имя слишком длинное, да и "_" лишнее.
2. Дело могет быть системное - у стандартных табл описания входят в Galnet.exe.
3. А ТП что грит?

Добавлено: 29 июн 2009, 08:58
Hmyrii
префикс в названии таблиц убирать не стану, так уж проект заложен
ТП не чего не говорит, не обращался я к ним на эту тему
победить не смог проблему, как то не одекватно себя система повела, пришлось зашивать в код то что я хотел возложить на тригеры

Добавлено: 29 июн 2009, 09:49
Ged
Попробовал навесить тригер на свою табл. - без проблем.
Може вы пытаетесь сделать селект непосредственно в тригере?

Добавлено: 06 июл 2009, 18:36
savov
Народ, просветите темного. На каком сервере делаются триггеры (Pervasive, MS SQL, Oracle) и где мануал искать?

Добавлено: 06 июл 2009, 19:27
Ged
в атлантисе (это тоже СУБД)
VipProg.chm см.

Код: Выделить всё

Подписка обработчика на триггер    

Подписка на триггер производится по следующиму синтаксису:

<подписка-на-триггер> = handler [ with replace ]
  <имя-обработчика> on trigger <имя-таблицы>
  <вызов-обработчика> <вид-операции> [ [<приоритет>] ]
  [ action { <код-на-языке-VIP> } ]
  [ rollback { <код-на-языке-VIP> }