Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Referential Integrity: Trigger failed in ..  [new]
Oxygene
Member

Откуда: Earth
Сообщений: 104
Есть 3 таблицы:

CREATE TABLE TabParent1 (Tab1_ID)
CREATE TABLE TabParent2 (Tab2_ID)
CREATE TABLE TabChild(Tab1_ID, Tab2_ID) - таблица связи:

TabParen1<-TabChild->TabParent2

В Referential Integrity, Rules for Inserting (or Update) = RESTRICT, т.е. по идее я не могу в TabChild добавить строку (или изменить) со значениями которых нет соответственно в TabParent1 и ТаbParent2.. Но в реальности выходит так, что в TabChild вообще невозможно ничего добавить, включая строки со значениями, которые есть в родительских базах!

Insert intto TabChild (Tab1_ID, TAb2_ID) VAlues (1, 2) - Trigger failed in TabChild

Почему так происходит?
1 июн 05, 17:21    [1589109]     Ответить | Цитировать Сообщить модератору
 Re: Referential Integrity: Trigger failed in ..  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Сразу после того, как команда

INSERT INTO ...

Даст ошибку триггера, должен быть создан глобальный массив gaErrors (он создается в теле триггера)

Посмотри в отладчике его содержимое. Там должно быть написано какая именно связь дала ошибку триггера.

Кстати, какая версия FoxPro?
1 июн 05, 17:33    [1589159]     Ответить | Цитировать Сообщить модератору
 Re: Referential Integrity: Trigger failed in ..  [new]
Oxygene
Member

Откуда: Earth
Сообщений: 104
Fox 9..
Но ошибка не происходит, если обе parent-таблицы находятся в памяти..
gaErrors ругается так: Alias 'LCPARENTWKAREA' is not found
1 июн 05, 17:37    [1589177]     Ответить | Цитировать Сообщить модератору
 Re: Referential Integrity: Trigger failed in ..  [new]
Oxygene
Member

Откуда: Earth
Сообщений: 104
Что, так и должно быть??
Вроде для Update не нужно никаких таблиц открывать..
А если я Insert делаю через OleDb, то там как мне открыть таблицы?
1 июн 05, 17:52    [1589245]     Ответить | Цитировать Сообщить модератору
 Re: Referential Integrity: Trigger failed in ..  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi Oxygene!

Уже обсуждалось - это ошибка в тексте процедур создаваемых RI Builder-ом - поиском попользуйся тут и на foxclub.ru

Posted via ActualForum NNTP Server 1.2

1 июн 05, 22:52    [1589873]     Ответить | Цитировать Сообщить модератору
 Re: Referential Integrity: Trigger failed in ..  [new]
Oxygene
Member

Откуда: Earth
Сообщений: 104
Спасибо Игорь!
Я так понял, что эта ошибка появляется после генерации триггеров в 9-м фоксе? Сразу появилось желание перейди обратно на 8-й, - стоит ли?
2 июн 05, 14:36    [1591763]     Ответить | Цитировать Сообщить модератору
 Re: Referential Integrity: Trigger failed in ..  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Не нашел я этого обсужения, хотя помню, что было.

Суть в том, что действительно генериться код триггера с ошибкой. Надо либо после каждой генарции корректировать полученный код (там надо просто скобки добавить), либо подправить исходники генератора триггера.

Все исходники лежат в архиве

HOME()+"\tools\xsource\xsource.zip"

Код генартора триггера написана все на том же FoxPro. Так что, проблем быть не должно.
2 июн 05, 16:12    [1592224]     Ответить | Цитировать Сообщить модератору
 Re: Referential Integrity: Trigger failed in ..  [new]
Oxygene
Member

Откуда: Earth
Сообщений: 104
Обсуждение здесь:

http://forum.foxclub.ru/read.php?f=5&i=104926&t=104872#reply_104926
2 июн 05, 18:08    [1592743]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить