Не "заставить", а "попросить".
SETCURRENTKEY лишь добавляет ORDER BY в сиквельный запрос.
Индекс выбирает SQL. И это лишь совпадение что он выбирает то что передано в ORDER BY.
Попробуйте наложить много фильтров, сделав SETCURRENTKEY на ключ с большим количеством полей (именно те, по которым накладывался фильтр).
Или например так:
GLEntry.RESET;
GLEntry.SETCURRENTKEY("Transaction No.");
GLEntry.SETRANGE("G/L Account No.",'000.');
GLEntry.SETFILTER("Entry No.",'<10');
Кстати сколько записей у вас в GLEntry?
P.S. Признаться честно, не понимаю почему SQL 2000 так нелепо выбирает индексы для запроса. Все ваши примеры на 2005 работают по другому. Завтра поставлю 2000 и потестирую.
|