ISQLCallback

Сборка: Db;

Пространство имен: Prognoz.Platform.Interop.Db;

Описание

Интерфейс ISQLCallback содержит методы, которые используются для обработки процесса формирования запроса на извлечение данных куба.

Иерархия наследования

ISQLCallback

Комментарии

Методы данного интерфейса должны быть переопределены в пользовательском классе. Класс может быть установлен в качестве обработчика для источника куба с помощью метода IStandardCubeDataset.SetCallback.

Запрос на извлечение данных состоит из нескольких частей. Некоторые части запроса можно изменить в методе BeforeConstruction. Финишные доработки запроса могут быть произведены в методе AfterConstruction.

Важно. Модификацию запроса на извлечение данных куба стоит производить только в крайних случаях при полной уверенности вносимых изменений.

Ниже представлен список частей, которые могут присутствовать в запросе. Угловые скобки в запросе отсутствуют, ими выделен тот блок, который может быть изменён. Синтаксис каждого блока зависит от типа используемой СУБД.

  1. Основная часть запроса, в которой задаются извлекаемые данные: select <a.KEY,a.DATE,a.VALUE>. Изменяется в свойстве ISQLComponents.Select_.

  2. Источник, из которого извлекаются данные: from <DATA_TABLE a>. Изменяется в свойстве ISQLComponents.From_.

  3. Полное условие отбора для элементов измерений: <((a.DATE in ({d'2010-01-01'},{d'2011-01-01'},{d'2012-01-01'}))) and ((a.KEY in (1,2,3,4,5,6,7,8,9,10))))>. Изменяется в свойстве ISQLComponents.Where.

  4. Группировка результатов: GroupBy <KEY>. Изменяется в свойстве ISQLComponents.GroupBy.

  5. Выражение для агрегации: <COUNT(DISTINCT a.VALUE )>. Изменяется в свойстве ISQLComponents.Aggregation.

  6. Сортировка результатов: OrderBy <KEY>. Изменяется в свойстве ISQLComponents.OrderBy.

  7. Набор отдельных условий, входящих в ISQLComponents.Where. Количество условий можно получить в свойстве ISQLComponents.ConditionCount, свойство ISQLComponents.Condition возвращает отдельное условие. Изменить условие в ISQLComponents.Condition нельзя.

  8. Псевдоним, используемый в запросе для сокращения наименований таблиц: a. Получить псевдоним можно в свойстве ISQLComponents.TableAlias, изменить его нельзя.

В свойстве ISQLComponents.SubQuery возвращается признак использования подзапросов в запросе. Значение ISQLComponents.SubQuery изменить нельзя, признак необходимости использования подзапросов задаётся в свойстве IStandardCubeDataset.UseSubqueryOptimization.

Наличие определённых частей зависит от настроек куба и его источника данных. Какие-либо части могут отсутствовать.

Методы

  Имя метода Краткое описание
AfterConstruction Метод AfterConstruction вызывается после формирования запроса на выборку данных куба.
BeforeConstruction Метод BeforeConstruction вызывается перед формированием запроса на извлечение данных куба.

См. также:

Интерфейсы сборки Db