Как использовать возможности MasterSource и MasterFields с использованием наборов данных FibPlus или FibQuery
Я переписываю существующую программу базы данных BDE для использования Firebird с использованием компонентов FibPlus.
Поскольку я почти везде использовал компоненты TQuery, изменение довольно простое.
Помимо одной вещи я, кажется, не могу найти:
- В одной из моих форм у меня есть две сетки друг над другом, связанные с компонентами TTable, где нижеприведенная сетка отображает записи только с тем же ключом, что и выбранная запись в верхней сетке - таким образом, отношение master/detail.
Это было сделано легко в BDE, используя MasterSource
а также MasterFields
свойства.
Как этого достичь, используя компоненты FibPlus FibDataset или FibQuery?
1 ответ
Я не думаю, что это возможно с FibQuery, но с FibDataSet есть свойство DataSource, которое вы должны указать на DataSource, связанный с основным DataSet.
В Detail fibDataSet должно использоваться предложение where, где параметр имеет то же имя, что и главное поле для таблицы сведений в главной таблице.
Например: master pFibDataSet CustomerspFibDataSet со следующим SQL:
select cusotmerid, name, address, country from customers
Основной DataSource CustomersDataSource со свойством DataSet, установленным в CustomerpFibDataSet
подробно pFibDataset OrderspFibDataSet со свойством DataSource, установленным в CustomersDataSource и следующим SQL:
select orderid, date, amount from orders
where customerid = :customerid