Как использовать возможности 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
Другие вопросы по тегам