Поделиться через


Функция JetPrereadKeys

Применимо к: Windows | Windows Server

Функция JetPrereadKeys

Функция JetPrereadKeys считывает значения ключей для повышения производительности очистки хранилища версий.

Windows 7. Функция PrereadKeys появилась в Windows 7.

    JET_ERR JET_API JetPrereadKeys(
      __in JET_SESID sesid,
      __in JET_TABLEID tableid,
      __in_ecount(ckeys) const void ** rgpvKeys,
      __in_ecount(ckeys) const unsigned long * rgcbKeys,
      __in long ckeys,
      __out_opt long * pckeysPreread,
      __in JET_GRBIT grbit
     );

Параметры

sesid

Контекст сеанса базы данных, используемый для вызова API.

tableid

Курсор, используемый для этого вызова.

rgpvKeys

Массив указателей на ключи. Ключи можно сделать с помощью JetMakeKey или получить с помощью JetGetBookmark. Ключи должны быть отсортированы по возрастанию или убыванию в зависимости от пройденного гбита. Ключи можно отсортировать с помощью memcmp.

rgcbKeys

Массив длин ключей. rgpvKeys[n] должен указывать на ключ длины rgcbKeys[n]

ckeys

Количество ключей. rgpvKeys и rgcbKeys должны указывать на массив, содержащий по крайней мере элементы ckeys.

pckeysPreread

Возвращает количество ключей, для которых фактически были выданы предварительные чтения. Этот параметр может принимать значение NULL.

grbit

Это должно быть либо JET_bitPrereadForward, либо JET_bitPrereadBackward. Если grbit JET_bitPrereadForward, ключи должны быть отсортированы по возрастанию. Если grbit JET_bitPrereadBackward, ключи должны быть отсортированы по убыванию.

Возвращаемое значение

Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.

Можно возвращать различные ошибки ввода-вывода вместе со следующими ошибками использования API:

Код возврата

Описание

JET_errInvalidGrbit

Гбит не был ни JET_bitPrereadForward, ни JET_bitPrereadBackward.

JET_errInvalidBufferSize

Передан неправильный размер ключа. Ключи не могут быть ни 0, ни длиннее максимальной длины ключа для таблицы.

JET_errInvalidParameter

Передан недопустимый параметр. Это может быть вызвано значением NULL для обязательного параметра или может указывать на то, что массив ключей не отсортирован должным образом.

JetPrereadKeys просматривает внутренние страницы b-дерева, чтобы определить, какие конечные страницы содержат ключи, заданные rgpvKeys/rgcbKeys. Список конечных страниц сортируется, а затем выдаются предварительные читаемые данные для диапазонов страниц. Количество страниц, которые можно предварительно прочитать, ограничено, поэтому возможно, что не все ключи могут быть предварительно прочитанными. В этом случае количество ключей, фактически предварительно прочитанных, возвращается в pckeysPreread.

Требования

Требование Значение

Клиент

Требуется Windows 7.

Сервер

Требуется Windows Server 2008 R2.

Верхняя часть

Объявлено в Esent.h.

Библиотека

Используйте ESENT.lib.

DLL

Требуется ESENT.dll.