Мастер/дитэил отношения.

Мастер/дитэил отношение – это режим работы двух датасетов при котором все видимые записи одного датасета (DetailDataSet) всегда соответствуют одной записи другого датасета (MasterDataSet). При движении по MasterDataSet’у DetailDataSet пересоздает или фильтрует записи так, чтобы они соответствовали записи MasterDataSet’а. Соответствия выставляются с помощью свойств MasterFields и KeyFields. DetailDataSet всегда выводит только те записи, у которых значения поля (полей) KeyFields равно значению поля (полей), заданное свойством MasterFields в мастер записи.

TMemTableEh позволяет создавать мастер/дитэил отношения на клиенте “mdsOnSelfEh” (фильтруя записи) или на провайдере “mdsOnProviderEh” (пересоздавая записи).

Для установки TMemTableEh в режим дитэил, используются следующие свойства: MasterSource, MasterFields, KeyFields, MasterDetailSide. Когда MasterDetailSide установлен в mdsOnSelfEh, TMemTableEh будет фильтровать записи по полям DetailFields основываясь на значении полей MasterSource[MasterFields]. Когда MasterDetailSide установлен в mdsOnProviderEh, TMemTableEh будет переоткрывать себя, присвоив параметры значениями полей из MasterSource[MasterFields]. При открытии TMemTableEh передает свои параметры DataDriver'у. В режиме mdsOnProviderEh свойства DetailFields не используются.

Третий режим работы - “mdsOnSelfAfterProviderEh” является комбинацией двух предыдущих. При первом переходе на запись в MasterDataSet’е DetailDataSet запрашивает записи у DataDriver'а, передавая ему параметры со значениями, присвоенными из MasterSource[MasterFields] и добавляет полученные данные в свой внутренний массив записей. При повторном переходе на ту же запись в MasterDataSet’е DetailDataSet будет всегда только фильтровать свои записи.