Функция 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. |