JetSetSystemParameter 函数
适用于:Windows |Windows服务器
JetSetSystemParameter 函数
JetSetSystemParameter 函数用于设置数据库引擎的众多配置设置。
JET_ERR JET_API JetSetSystemParameter(
__in_out_opt JET_INSTANCE* pinstance,
__in JET_SESID sesid,
__in unsigned long paramid,
__in JET_API_PTR lParam,
__in_opt JET_PCSTR szParam
);
参数
pinstance
指定要用于此调用的实例。
Windows 2000:对于 Windows 2000,此参数将被忽略,应始终为 NULL。
Windows XP:对于 Windows XP 和更高版本,此参数有点重载。 如果引擎在旧模式下运行, (Windows 2000 兼容模式) 仅支持一个实例,则此参数可能是 NULL,也可能包含 JetInit 返回的实际实例。 无论哪种情况,都会从该一个实例读取所有系统参数设置。 如果引擎在多实例模式下运行,则此参数可能是 NULL 或指向使用 JetInit 或 JetCreateIndex 创建的实例的指针。 如果此参数为 NULL ,则读取全局系统参数设置 (或默认) 。 如果此参数是实例,则读取该实例的系统参数设置。
尽管从技术上讲这是一个 out 参数,但此 API 永远不会修改提供的缓冲区的内容。
sesid
指定要用于此调用的会话。
指定后,将忽略指定的实例,并使用与会话关联的实例。
paramid
将设置的系统参数的 ID。 有关系统参数及其属性的完整列表,请参阅 系统参数 。
lParam
提供要为所选系统参数设置的值(如果该系统参数为整数类型)。
szParam
如果所选的系统参数是字符串类型,则提供所选系统参数的值。
返回值
此函数使用以下返回代码之一返回 JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅可扩展存储引擎错误和错误处理参数。
返回代码 |
描述 |
---|---|
JET_errSuccess |
操作已成功完成。 Windows Vista:在 Windows Vista 及更高版本上,可以在不更改系统参数的值的情况下返回成功。 有关详细信息,请参阅 Meta Parameters 主题中的JET_paramEnableAdvanced系统参数。 |
JET_errAlreadyInitialized |
实例已使用对 JetInit 的调用进行初始化,因此无法执行此操作。 如果尝试在更改其值后配置系统参数,则 JetSetSystemParameter 可能会发生这种情况,这不会影响数据库引擎的状态。 |
JET_errClientRequestToStopJetService |
无法完成该操作,因为由于调用 JetStopService 而停止了与会话关联的实例上的所有活动。 |
JET_errIndexTuplesInvalidLimits |
指定的元组索引参数是非法的。 仅当将JET_paramIndexTuplesLengthMin、JET_paramIndexTuplesLengthMax或JET_paramIndexTuplesToIndexMax设置为非法值时,JetSetSystemParameter 才会返回此错误。 Windows XP 和 Windows Server 2003:这只能在 Windows XP 和 Windows Server 2003 上发生。 |
JET_errInitInProgress |
无法完成该操作,因为正在初始化与会话关联的实例。 |
JET_errInstanceUnavailable |
无法完成该操作,因为与会话关联的实例遇到了一个致命错误,该错误要求撤销对所有数据的访问以保护该数据的完整性。 Windows XP:此错误仅由 Windows XP 和更高版本返回。 |
JET_errInvalidParameter |
提供的参数之一包含意外值,或包含与另一个参数的值组合时没有意义的值。 当以下情况发生时 ,JetSetSystemParameter 可能会发生这种情况:
|
JET_errInvalidPath |
指定的文件系统路径无效。 仅当设置表示文件系统路径的系统参数时, JetSetSystemParameter 才会返回此错误。 例如, JET_paramSystemPath 可能会返回此错误。 |
JET_errNotInitialized |
无法完成该操作,因为尚未初始化与会话关联的实例。 |
JET_errRestoreInProgress |
无法完成该操作,因为还原操作正在与会话关联的实例上进行。 |
JET_errTermInProgress |
无法完成该操作,因为与会话关联的实例正在关闭。 |
JET_errInvalidSesid |
会话句柄无效或引用已关闭的会话。 在所有情况下都不会返回此错误。 仅尽最大努力验证句柄。 |
JET_errInvalidInstance |
实例句柄无效或引用已关闭的实例。 在所有情况下都不会返回此错误。 仅尽最大努力验证句柄。 Windows Vista:此错误仅由 Windows Vista 及更高版本返回。 |
成功后,系统参数的设置将设置为所提供的值。
失败时,系统参数的设置将保持不变。
注解
JetSetSystemParameter 执行验证每个系统参数所选设置的差工作。 必须注意不要依赖此验证来强制实施良好的设置。 请密切关注每个系统参数的说明,并遵循这些准则来设置良好的系统参数。
应始终设置一组系统参数,以确保数据库引擎按预期工作。 具体而言,应始终设置影响数据库引擎使用的文件的物理布局的任何系统参数。 有关详细信息,请参阅 系统参数。
每个系统参数都有一个默认值。 这些默认值随着时间推移而演变,并且相当任意。 强烈建议应用程序评估所有默认值,以确保它们合适。 如果它们不合适,则应用程序应配置它们。 这很重要,因为其中许多参数可以极大地影响数据库引擎的可靠性、性能和资源利用率。
要求
要求 | 值 |
---|---|
客户端 |
需要 Windows Vista、Windows XP 或 Windows 2000 Professional。 |
Server |
需要Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
标头 |
在 Esent.h 中声明。 |
Library |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |
Unicode |
实现为 JetSetSystemParameterW (Unicode) 和 JetSetSystemParameterA (ANSI) 。 |
另请参阅
JET_API_PTR
JET_ERR
JET_INSTANCE
JET_SESID
JetCreateInstance
JetGetSystemParameter
JetInit
系统参数