Показать сообщение отдельно
Старый 24.10.2008, 10:32   #1  
Corsar is offline
Corsar
Участник
 
15 / 12 (1) ++
Регистрация: 23.10.2008
И снова про Relation
Добрый день!
Скачал примерчик tutorial_Form_Dynalink. Собственно вопрос не по коду, а по Relation. Там есть две таблички : "master" tutorial_Form_Dynalink1 и "slave" tutorial_Form_Dynalink2. В обеих таблицах есть поля
VendAccount (EDT-> VendAccount)
ItemId (EDT-> ItemId)

на tutorial_Form_Dynalink2 создан Relation
tutorial_Form_Dynalink1 (validate=YES)
tutorial_Form_Dynalink2.VendAccount==tutorial_Form_Dynalink1.VendAccount
tutorial_Form_Dynalink2.ItemId == tutorial_Form_Dynalink1.ItemId

Предположим, после этого в "master" таблицу (tutorial_Form_Dynalink1) ввожу значения (из лукапов по EDT)
ItemId='Стул' VendAccountId='3000'
в "slave" таблицу (tutorial_Form_Dynalink2) добавляю совершенно другие значения (из лукапов по EDT)
ItemId='Стол' VendAccountId='0001'
И это "съедается" для "slave" не смотря на присутствие Relation со свойством validate=YES
Почему так происходит?

Вот выдержки из Developer Guide

Цитата:
Relations in the data model must be expressed in relations. Such relations must be validating. This means that the Validate property must be set to Yes.
Performing validation and maintaining referential consistency

Both the Validate and DeleteAction properties on a relation and on a DeleteAction node respectively are used to maintain referential consistency in the database.
Similarly, the programmer uses the Validate property to maintain consistency when records are updated or inserted. If the Validate property on a relation is set to Yes, the system uses the relation to perform the validation automatically.
Просто не понимаю , почему не происходит "validation" (данные во второй таблице не зависят от данных в основной таблице не смотря на существующий Relation) ?

Спасибо!