JetGetRecordSize 函数

适用于:Windows |Windows服务器

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

请求的选项之一无效或未实现。 指定非法 grbit,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

如果传递NULLprecsize,则可以返回此值。

注解

JET_RECSIZEcbOverhead 字段中累积的键的大小受JET_bitRecordSizeInCopyBuffer影响。 如果指定了此位, 则 cbOverhead 字段中累积的密钥大小是完整的密钥大小。 如果未使用此位,则累积的密钥大小将不包括由于键前缀压缩而保存的任何大小。

要求

要求

客户端

需要Windows Vista。

Server

需要Windows Server 2008。

标头

在 Esent.h 中声明。

Library

使用 ESENT.lib。

DLL

需要ESENT.dll。

另请参阅

JET_ERR
JET_GRBIT
JET_SESID
JET_RECSIZE
JET_TABLEID