JetOpenTable 函数
适用于: Windows |Windows Server
JetOpenTable 函数
JetOpenTable 函数在以前创建的表上打开光标。
JET_ERR JET_API JetOpenTable(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in const tchar* szTableName,
__in_opt const void* pvParameters,
__in unsigned long cbParameters,
__in JET_GRBIT grbit,
__out JET_TABLEID* ptableid
);
参数
sesid
要使用的数据库会话上下文。
dbid
用于查找表的数据库标识符。
szTableName
要打开的表的名称。
pvParameters
已弃用。 设置为 NULL。
cbParameters
已弃用。 将 设置为 0 (零) 。
grbit
指定以下零个或多个选项的一组位。
值 |
含义 |
---|---|
JET_bitTableDenyRead |
另一个数据库会话无法打开该表进行读取访问。 |
JET_bitTableDenyWrite |
该表不能由另一个数据库会话打开以供写入访问。 |
JET_bitTableNoCache |
不要缓存此表的页面。 |
JET_bitTablePermitDDL |
允许对标记为 FixedDDL 的表进行 DDL 修改。 此选项必须与 JET_bitTableDenyRead 选项一起使用。 |
JET_bitTablePreread |
提供一个提示,指出表可能不在缓冲区缓存中,并且预读取可能有利于性能。 |
JET_bitTableReadOnly |
请求对表的只读访问权限。 |
JET_bitTableSequential |
表应非常主动地从磁盘中预取,因为应用程序将按顺序对其进行扫描。 |
JET_bitTableUpdatable |
请求对表的写入访问权限。 |
ptableid
成功时,指向表的标识符。 失败时, ptableid 的内容未定义。
返回值
此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errInvalidDatabaseId |
dbid 不是有效的数据库标识符。 |
JET_errInvalidgrbit |
传入了 grbit 的不良组合。 |
JET_errInvalidName |
szTableName 中给定的名称无效。 有关有效表名的详细信息,请参阅 JetCreateTable 中的 szTableName 参数。 |
JET_errObjectNotFound |
尝试打开数据库中不存在的表。 |
JET_errOutOfCursors |
操作失败,因为引擎无法分配打开新游标所需的资源。 请参阅“备注”部分。 |
JET_errTableInUse |
该表正由另一个数据库操作使用。 |
JET_wrnTableInUseBySystem |
指示系统正在使用表的非严重警告。 |
JET_errTableLocked |
表被另一个数据库操作锁定。 |
JET_errTooManyOpenTables |
尝试一次打开过多的唯一表。 请参阅“备注”部分。 |
备注
使用 JetOpenTable 打开的表通常应使用 JetCloseTable 关闭。 当在事务中调用 JetOpenTable 并使用 JetRollback) 回滚事务 (时,会发生此规则的例外情况。 回滚事务时,表会自动关闭。 在这种情况下,使用 JetCloseTable 关闭表是错误的。
使用 JetOpenTable (打开系统表是合法的,例如 MSysObjects、MSysUnicodeFixup) 。 系统表的架构可能会更改,因此不建议访问系统表。 可同时打开的唯一表数直接受 JET_paramMaxOpenTables的影响。 如果表当前处于打开状态,则会在表上创建新的游标。 游标资源是使用 JetSetSystemParameter 和 JET_paramMaxCursors 配置的。 另请参阅 JetDupCursor。
要求
要求 | 值 |
---|---|
客户端 |
需要 Windows Vista、Windows XP 或 Windows 2000 专业版。 |
服务器 |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
标头 |
在 Esent.h 中声明。 |
Library |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |
Unicode |
实现为 JetOpenTableW (Unicode) 和 JetOpenTableA (ANSI) 。 |
另请参阅
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetDupCursor
JetRollback
JetSetSystemParameter
资源参数