Функция JetGetRecordSize

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

Функция JetGetRecordSize

Функция JetGetRecordSize извлекает сведения о размере записи из нужного расположения.

Windows Vista: JetGetRecordSize представлен в Windows Vista.

    JET_ERR JET_API JetGetRecordSize(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         JET_RECSIZE* precsize,
      __in          const JET_GRBIT grbit
    );

Параметры

sesid

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

tableid

Определяет таблицу или курсор, которые будут использоваться для вызова API. Курсор должен располагаться на записи или иметь подготовленное обновление.

precsize

Указатель на выходной буфер для структуры JET_RECSIZE .

grbit

Это одно или несколько из следующих значений.

Значение

Значение

JET_bitRecordSizeInCopyBuffer

При этом извлекается размер записи, которая находится в буфере копирования, подготовленном к обновлению. В противном случае tableid или курсор должны быть расположены на записи, и эта запись будет использоваться.

JET_bitRecordSizeRunningTotal

Если указан этот бит, JET_RECSIZE не обнуляется перед заполнением содержимого, фактически выступая в качестве накопления статистики для нескольких посещенных или обновленных записей.

JET_bitRecordSizeLocal

Это приводит к тому, что API игнорирует не встроенные длинные значения. Например, будет использоваться только локальная запись на странице.

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

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

Код возврата

Описание

JET_errSuccess

Операция выполнена успешно.

JET_errInvalidGrbit

Один из запрошенных вариантов был недопустим или не реализован. Эта ошибка будет возвращена функцией JetGetRecordSize , если указан недопустимый гбит .

JET_errNotInitialized

Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, не инициализирован.

JET_errClientRequestToStopJetService

Невозможно выполнить операцию, так как все действия экземпляра, связанного с сеансом, прекратились в результате вызова JetStopService.

JET_errInstanceUnavailable

Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, столкнулся с неустранимой ошибкой, требующей отмены доступа ко всем данным для защиты целостности этих данных.

Windows XP: JET_errInstanceUnavailable будут возвращены только в Windows XP и более поздних выпусках.

JET_errTermInProgress

Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, завершает работу.

JET_errRestoreInProgress

Невозможно выполнить операцию, так как операция восстановления выполняется в экземпляре, связанном с сеансом.

JET_errSessionSharingViolation

Использование одного сеанса из нескольких потоков одновременно недопустимо.

Windows XP: JET_errInstanceUnavailable будут возвращены только в Windows XP и более поздних выпусках.

JET_errNoCurrentRecord

Это может произойти, если курсор был расположен неправильно.

JET_errRecordDeleted

Если курсор не был расположен в транзакции, это может произойти, если другой поток удалит запись из этого сеанса.

JET_errInvalidParameter

Это значение может быть возвращено, если был передан прекcizeNULL.

Комментарии

Размер ключа, накопленный в поле cbOverheadJET_RECSIZE, зависит от JET_bitRecordSizeInCopyBuffer. Если указан этот бит, размер ключа, накопленный в поле cbOverhead , равен полному размеру ключа. Если этот бит не используется, то накопленный размер ключа не будет содержать размер, сохраненный из-за сжатия префикса ключа.

Требования

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

Клиент

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

Сервер

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

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

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

Библиотека

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

DLL

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

См. также:

JET_ERR
JET_GRBIT
JET_SESID
JET_RECSIZE
JET_TABLEID