Здравствуйте, AndrejC, Вы писали:
AC>Здравствуйте, Artour Bakiev, Вы писали:
AB>>Боюсь, я не смогу помочь, не видя исходного кода. Пришлите, пожалуйста, исходный код — я попробую помочь Вам.
AC>Потерял уже надежду дождаться ответа, хотя код запостил уже давно. Если он у Вас всё-таки появится — напишите мне на майл: andrejusc@yahoo.com
Понимаю, Андрей, что мой ответ опоздал на несколько месяцев. Прошу извинить великодушно. Подозреваю, что ответ Вам уже известен, но, руководствуюсь принципом — лучше поздно, чем никогда...
Мои опыты и чтение документации показали следующее:
Одна из фраз, встречающаяся в MSDN при описании функции JetMakeKey звучит так: "A complete search key is built up in a series of JetMakeKey calls where each call is used to load the column value for the next key column of the current index of a cursor". Обратите внимание на конструкцию "next key column". Думаю, что авторы имели в виду, что при конструировании ключ для сложного индекса необходимо перечислять колоки в том же порядке, в каком они были перечислены при создании индекса. Это значит, что Вам либо придётся узнать у автора таблицы порядок, в котором перечислялись колонки, либо проверить 4! комбинаций.
В той же статье, описывающей поведение функции JetMakeKey для параметра cbData сказано следующее: "If the size of the column data is zero then the contents of the input buffer are ignored". Думаю, что это значение позволяет сообщить JetBlue информацию о том, что значение этой колонки нужно игнорировать.
Буду рад, если эта информация оказажется Вам полезной.