Формирование запросов

Для доступа к конкретному экземпляру бизнес-объекта, хранящегося в базе данных необходимо получить ссылку на интерфейсный объект IovObject, связанный с требуемым экземпляром. Если идентификатор этого экземпляра известен заранее, то ссылку на него можно получить с помощью операции GetObject(OID) интерфейсного объекта IovClass или IovObjectSpace.

В случае, если идентификатор объекта заранее неизвестен или требуется получить несколько объектов, удовлетворяющих некоторым условиям, можно использовать компонент TovQuery. Данный компонент является наследником компонента TDataSet и поэтому может быть использован с любыми компонентами, осуществляющими доступ к данным посредством компонентов TDataSet или TDataSource.

Для выборки требуемых объектов используется выражение с синтаксисом, подобным SQL, однако вместо указания названий таблиц и столбцов нужно указывать названия бизнес-объектов и их атрибутов. При активизации данного компонента он формирует SQL-запрос к базе данных для выборки требуемых объектов и делает доступным атрибуты этих объектов посредством полей набора данных. Для получения доступа к экземпляру объекта, соответствующего текущей записи этого набора данных, используется свойство CurrentObject.

В простейшей форме запрос может выглядеть таким образом: 

SELECT [*] FROM [Компания]

Приведенная команда выбирает все экземпляры класса Компания. Если указать фразы WHERE и ORDER BY, то множество выбранных объектов будет ограничено по указанному условию и отсортировано по заданному атрибуту:

SELECT [*] FROM [Компания] WHERE [Компания.Название] LIKE '%Corp%' ORDER BY [Компания.Название]

Названия атрибутов в выражениях отделяются от названия класса посредством символа ".", что позволяет указывать атрибуты как непосредственно выбираемых объектов, так и объектов связанных с ними отношениями ассоциации.

Примеры запросов к демонстрационной базе данных можно изучить, нажав на значок Запросы на навигационной панели в левой части экрана.