Вопрос по триггерам

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Den_Is
Постоянный обитатель
Сообщения: 169
Зарегистрирован: 08 авг 2005, 20:11
Откуда: Омск

Вопрос по триггерам

Сообщение Den_Is »

Вот решил разобраться с тригеррами. Посмотрел в vipprog.chm данную тему.
В теории все понятно, но вот на практике (((
Беру пример из хелпа.
handler ib1 on trigger X$USERS before insert [99]
action
{
var buf : record as table X$USERS;

Message('X$USERS before insert');
GetTableBuffer(buf);
Message('X$USERS.xu$loginname = ' + buf.xu$loginname);
buf.title := 'IVANOV';
SetTableBuffer(buf);
result := true;
}
rollback
{
Message('X$USERS before insert rollback');
}

Записываю его как vip файл, и пытаюсь откомпилировать.
Но выдается ошибка Ожидался тип объекта handler ib1.
Подскажите "чайнику" что не так делаю?
Да еще вопрос работают ли триггеры для первасива?
Dmitry_Sol
Постоянный гость
Сообщения: 76
Зарегистрирован: 07 июн 2007, 12:32
Откуда: Витебск
Контактная информация:

Re: Вопрос по триггерам

Сообщение Dmitry_Sol »

1.Триггеры в Вип платформонезависимы. И работают для Pervasive в том числе
2.Триггеры появились начиная с версии Atlantis 5.3.17
3.Триггеры компилируются через vip.exe или в суппорте через компилятор интерфейсов
4.в таблице x_users нет поля TITLE, поэтому пример не компилируется, но с другой ошибкой

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

handler ib1 on trigger X$USERS before insert [99]
action
{
var buf : record as table X$USERS;

Message('X$USERS before insert');
GetTableBuffer(buf);
Message('X$USERS.xu$loginname = ' + buf.xu$loginname);
buf.XU$FULLNAME:='IVANOV';
SetTableBuffer(buf);
result := true;
}
rollback
{
Message('X$USERS before insert rollback');
}
так у меня компилируется
:-)
Den_Is
Постоянный обитатель
Сообщения: 169
Зарегистрирован: 08 авг 2005, 20:11
Откуда: Омск

Re: Вопрос по триггерам

Сообщение Den_Is »

Что то не компилится, а что за параметр Triggers=on ?
Может быть его где надо прописать?
Dmitry_Sol
Постоянный гость
Сообщения: 76
Зарегистрирован: 07 июн 2007, 12:32
Откуда: Витебск
Контактная информация:

Re: Вопрос по триггерам

Сообщение Dmitry_Sol »

Насколько я знаю Triggers=On - это параметр для проверки триггеров в CHKMSSQL.Он используется на платформах MS SQL и ORACLE для корректировки системных триггеров , и на программные триггера, никак не влияет.

Вы собираете проект Vip.exe?
Какая версия vip?
Den_Is
Постоянный обитатель
Сообщения: 169
Зарегистрирован: 08 авг 2005, 20:11
Откуда: Омск

Re: Вопрос по триггерам

Сообщение Den_Is »

версия 3.03.22.
Den_Is
Постоянный обитатель
Сообщения: 169
Зарегистрирован: 08 авг 2005, 20:11
Откуда: Омск

Re: Вопрос по триггерам

Сообщение Den_Is »

up извиняюсь
LaaLaa

Re: Вопрос по триггерам

Сообщение LaaLaa »

"VIP-триггеры", если не изменяет память, появились только в 5-й версии компилятора Vip.exe.
Den_Is
Постоянный обитатель
Сообщения: 169
Зарегистрирован: 08 авг 2005, 20:11
Откуда: Омск

Re: Вопрос по триггерам

Сообщение Den_Is »

Прискорбно (
Senkrid
Постоянный гость
Сообщения: 74
Зарегистрирован: 10 ноя 2009, 07:08
Откуда: Ангарск
Контактная информация:

Re: Вопрос по триггерам

Сообщение Senkrid »

Не могу скомпилировать с RunDialog:
Ошибка: Нет такой функции, поля или метода : RUNDIALOG...

Вариант использовать через объектный интерфейс или есть другие варианты?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Вопрос по триггерам

Сообщение edward_K »

В программных триггерах допустимо использование только объектных интерфейсов.
Ответить