Динамический индекс

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Динамический индекс

Сообщение BlazeBio »

Можно ли задавать индекс динамически? Например, в select'е таблица katmc(x), где - х -нужный индекс. Если можно то хотелось бы узнать какото типа будет в данном случае х? :?:
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Динамический индекс

Сообщение edward_K »

а нафига? Обычно все регулируется поднятием соотв. порядка(для всей лог.таблицы) или bounds c ordred by. Ну не удобно - зато по коду понятно. По идее там номер индекса, но вот скушает ли компилятор?. Есть функции по работе с префиксом таблицы.

Код: Выделить всё

function GetGrOrEq (iTable : integer;
                    iIndex : integer
                   ) : boolean;
например посмотрите. Но проще выгрузить во времянку , по переменной изменить поле для сортировке и все.
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Динамический индекс

Сообщение BlazeBio »

Для сортировки нужно. Потому что, если order by использовать, и setorder устанавливать - долго процесс идёт открытия окна, а по индексу как-то сразу получается. Времянка подошла бы, если б не небыло вставки в таблицу, которая хранится в БД.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Динамический индекс

Сообщение edward_K »

если 2,3 сортировки нужно то сделайте несколько bounds и подымайте их

Код: Выделить всё

bounds MainBound_nsopr  = 
        TypeSopr == KatSopr.VidSopr
        ordered by KatSopr.Vidsopr,katsopr.yearsopr,katSopr.NSopr
bounds dMainBound_nsopr = 
        TypeSopr == KatSopr.VidSopr and
        year(begdate) == KatSopr.yearsopr 
        and (begdate<=katsopr.dsopr and enddate >= KatSopr.dSopr)
        ordered by KatSopr.Vidsopr,katsopr.yearsopr,katSopr.NSopr  
тут главное не свалится во внешную выгрузку(поля подбираете под условие фильтрации и существующие индексы)
или ordered by index ....
в коде pushbounds(tbMainBound_nsopr). Такие bounds не желательно добавлять через AddBounds.
Ответить