JetSetDatabaseSize 函数

适用于: Windows |Windows Server

JetSetDatabaseSize 函数

JetSetDatabaseSize 函数设置未打开的数据库文件的大小。

    JET_ERR JET_API JetSetDatabaseSize(
      __in          JET_SESID sesid,
      __in          JET_PCSTR szDatabaseName,
      __in          unsigned long cpg,
      __out         unsigned long* pcpgReal
    );

parameters

sesid

标识要用于 API 调用的数据库会话上下文。

szDatabaseName

标识要更改其大小的数据库文件的名称。

Cpg

指定所需的数据库大小(以页为单位)。

pcpgReal

指向在 API 调用后接收数据库大小(以页为单位)的数字的指针。 如果 API 调用失败,则 pcpgReal 的内容未定义。

返回值

此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误错误处理参数

返回代码

说明

JET_errSuccess

操作已成功完成。

JET_errDatabaseInconsistent
JET_errDatabaseDirtyShutdown

JET_errDatabaseInconsistent和JET_errDatabaseDirtyShutdown是相同的数值。 要调整其大小的数据库必须处于干净关闭状态,称为一致状态。 不一致的数据库未损坏,但需要重播日志文件。

JET_errDatabaseInvalidPath

szDatabaseName 不得为空的非 NULL 字符串。

JET_errDiskFull

卷上的可用空间不足,无法执行增长操作。 JetSetDatabaseSize 还可能返回许多与文件相关的错误,包括但不限于:

  • JET_errDiskIO

  • JET_errFileNotFound

  • JET_errInvalidPath

  • JET_errFileAccessDenied

  • JET_errOutOfFileHandles

JET_errInvalidParameter

可能返回此错误的原因之一是 cpg 是否满足最小数据库大小。 当前最小数据库大小为 256 页。

JET_errOutOfMemory

系统的内存资源不足。

备注

如果在插入大量数据之前调用 JetSetDatabaseSize ,则数据库文件将在一次操作中增长。 这将降低数据库文件在文件系统级别碎片化的可能性,并减少数据库文件必须增长的次数。 增加数据库文件一次可能比增加数据库文件快几倍。

目前仅支持增加文件。 若要收缩文件,请使用 esentutl.exe 实用工具程序的碎片整理功能。

如果 cpg 小于数据库的当前大小,则将忽略该操作。 如果 cpg 小于当前) 256 页 (最小数据库大小,它将返回JET_errInvalidParameter。

若要设置打开的数据库的大小,请参阅 JetGrowDatabase

文件大小可能与 pcpgReal 中返回的页数不匹配。 pcpgReal 中可能不计入另外两个保留页。

要求

要求

客户端

需要 Windows Vista、Windows XP 或 Windows 2000 Professional。

服务器

需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。

标头

在 Esent.h 中声明。

Library

使用 ESENT.lib。

DLL

需要ESENT.dll。

Unicode

作为 JetSetDatabaseSizeW (Unicode) 和 JetSetDatabaseSizeA (ANSI) 实现。

另请参阅

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_OBJECTINFO
JET_OBJECTLIST
JetGrowDatabase