Сборка: Db;
Пространство имен: Prognoz.Platform.Interop.Db;
Интерфейс ISQLCallback содержит методы, которые используются для обработки процесса формирования запроса на извлечение данных куба.
ISQLCallback
Методы данного интерфейса должны быть переопределены в пользовательском классе. Класс может быть установлен в качестве обработчика для источника куба с помощью метода IStandardCubeDataset.SetCallback.
Запрос на извлечение данных состоит из нескольких частей. Некоторые части запроса можно изменить в методе BeforeConstruction. Финишные доработки запроса могут быть произведены в методе AfterConstruction.
Важно. Модификацию запроса на извлечение данных куба стоит производить только в крайних случаях при полной уверенности вносимых изменений.
Ниже представлен список частей, которые могут присутствовать в запросе. Угловые скобки в запросе отсутствуют, ими выделен тот блок, который может быть изменён. Синтаксис каждого блока зависит от типа используемой СУБД.
Основная часть запроса, в которой задаются извлекаемые данные: select <a.KEY,a.DATE,a.VALUE>. Изменяется в свойстве ISQLComponents.Select_.
Источник, из которого извлекаются данные: from <DATA_TABLE a>. Изменяется в свойстве ISQLComponents.From_.
Полное условие отбора для элементов измерений: <((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.
Группировка результатов: GroupBy <KEY>. Изменяется в свойстве ISQLComponents.GroupBy.
Выражение для агрегации: <COUNT(DISTINCT a.VALUE )>. Изменяется в свойстве ISQLComponents.Aggregation.
Сортировка результатов: OrderBy <KEY>. Изменяется в свойстве ISQLComponents.OrderBy.
Набор отдельных условий, входящих в ISQLComponents.Where. Количество условий можно получить в свойстве ISQLComponents.ConditionCount, свойство ISQLComponents.Condition возвращает отдельное условие. Изменить условие в ISQLComponents.Condition нельзя.
Псевдоним, используемый в запросе для сокращения наименований таблиц: a. Получить псевдоним можно в свойстве ISQLComponents.TableAlias, изменить его нельзя.
В свойстве ISQLComponents.SubQuery возвращается признак использования подзапросов в запросе. Значение ISQLComponents.SubQuery изменить нельзя, признак необходимости использования подзапросов задаётся в свойстве IStandardCubeDataset.UseSubqueryOptimization.
Наличие определённых частей зависит от настроек куба и его источника данных. Какие-либо части могут отсутствовать.
Имя метода | Краткое описание | |
AfterConstruction | Метод AfterConstruction вызывается после формирования запроса на выборку данных куба. | |
BeforeConstruction | Метод BeforeConstruction вызывается перед формированием запроса на извлечение данных куба. |
См. также: