Формирование запросов
Для доступа к конкретному экземпляру бизнес-объекта, хранящегося в базе данных необходимо получить ссылку на интерфейсный объект IovObject, связанный с требуемым экземпляром. Если идентификатор этого экземпляра известен заранее, то ссылку на него можно получить с помощью операции GetObject(OID) интерфейсного объекта IovClass или IovObjectSpace.
В случае, если идентификатор объекта заранее неизвестен или требуется получить несколько объектов, удовлетворяющих некоторым условиям, можно использовать компонент TovQuery. Данный компонент является наследником компонента TDataSet и поэтому может быть использован с любыми компонентами, осуществляющими доступ к данным посредством компонентов TDataSet или TDataSource.
Для выборки требуемых объектов используется выражение с синтаксисом, подобным SQL, однако вместо указания названий таблиц и столбцов нужно указывать названия бизнес-объектов и их атрибутов. При активизации данного компонента он формирует SQL-запрос к базе данных для выборки требуемых объектов и делает доступным атрибуты этих объектов посредством полей набора данных. Для получения доступа к экземпляру объекта, соответствующего текущей записи этого набора данных, используется свойство CurrentObject.
В простейшей форме запрос может выглядеть таким образом:
SELECT [*] FROM [Компания]
Приведенная команда выбирает все экземпляры класса Компания. Если указать фразы
WHERE и ORDER BY, то множество выбранных объектов будет ограничено по указанному условию и отсортировано по заданному атрибуту:
SELECT [*] FROM [Компания]
WHERE [Компания.Название] LIKE '%Corp%' ORDER BY [Компания.Название]
Названия атрибутов в выражениях отделяются от названия класса посредством символа ".", что позволяет указывать атрибуты как непосредственно выбираемых объектов, так и объектов связанных с ними отношениями ассоциации.
Примеры запросов к
демонстрационной базе
данных можно изучить, нажав
на значок Запросы на
навигационной панели в левой части экрана.