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

Clarion 6 + trigger

Добавлено: 15 Апрель 2009, 17:04
Tris
кто работал в Кларион 6 с триггерами?
не могу понять почему не хочет работать.
1. открываю Кларион
2. запускаю Дата Моделлер
3. создаю в ДМ словарь, две таблицы по несколько полей в каждой, ключи
4. создаю в одной из таблиц пустой триггер на AFTER INSERT
нажимаю експорт в текущее приложение и получаю ошибку 13 - требуется идентификатор. ссылка идет на строку [SOURCE]

вот кусок кода из txd
...
[TRIGGERS]
[TRIGGER]
!!> AFTER_INSERT
-> [SOURCE]
! ! Executes AFTER INSERT Code
! IF ~ErrorCode()
! begin
! !Place Clarion Code here
! end
! END !of Trigger Code After Insert
...
где что надо покрутить чтобы работало?

Re: Clarion 6 + trigger

Добавлено: 16 Апрель 2009, 10:30
Vladimir
в examples есть пример работы с триггерами: "A detailed example application (TRIGPUBS.APP) and associated dictionary that demonstrates this new feature can be found in the \(Clarion Root)\EXAMPLES\TRIGGERS folder." посмотри, может поможет..

Re: Clarion 6 + trigger

Добавлено: 16 Апрель 2009, 11:40
Tris
дело в том что по этому примеру и изучал как бы триггеры. посмотрел и сравнил исходники txd у себя и в примере. все точно так же. только у меня выдает ошибку.

Re: Clarion 6 + trigger

Добавлено: 16 Апрель 2009, 20:07
morkovin
2. запускаю Дата Моделлер
Никогда даже не пробовал создавать триггеры в DM.
Создаю их прямо в DCT...

Re: Clarion 6 + trigger

Добавлено: 16 Апрель 2009, 20:50
Tris
пробовал и в самом кларионе в DCT создавать, разницы по сути нет. в первом случае при открытии либо ошибку выдает, либо ничего не делает.
какие должны быть условия работы триггеров?
какой должны быть связи в таблицах, и поля для обновления чтобы работали триггеры?
или связи таблиц и полей не имеют значения?
может какие переменные надо вносить дополнительно? или ембдеды какие прописывать в формах?

попробовал просто назначить ембдед кнопке ОК при аксесе. написав код типа:
Таблица2:номер = Таблица1:номер_2 ----- взял из формы ввода номер и присвоил его значение номеру в таблице2 (типа связь по номеру товара)
Таблица2:остаток += Таблица1:количество ----- прибавить к значению в таблице2 по адресу Таблица2:номер значение которое взял при вводе
Access:Таблица2.Update() ---- обновить значение таблицы2

толку от этого никакого. кто что еще может посоветовать?

Re: Clarion 6 + trigger

Добавлено: 17 Апрель 2009, 7:52
morkovin
попробовал просто назначить ембдед кнопке ОК при аксесе. написав код типа:
Таблица2:номер = Таблица1:номер_2 ----- взял из формы ввода номер и присвоил его значение номеру в таблице2 (типа связь по номеру товара)
Можно было бы проверить доступность записи Таблицы2
IF Access:Tablica2.Fetch(Key_Tablica2_Nomer)= Levele:Benign THEN !тогда обновим
Таблица2:остаток += Таблица1:количество ----- прибавить к значению в таблице2
Access:Таблица2.Update() ---- обновить значение таблицы2
ELSE !добавим запись в таблицу2
!присвоим значения полей таблицы2
...............................
Access:Таблица2.TryInsert()
END