Показать сообщение отдельно
Старый 09.10.2007, 18:03   #42  
Голышев Михаил is offline
Голышев Михаил
Участник
 
106 / 10 (1) +
Регистрация: 03.07.2006
Не "заставить", а "попросить".

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 и потестирую.