JetDupCursor 函数
适用于: Windows |Windows Server
JetDupCursor 函数
JetDupCursor 函数复制打开的游标,并返回重复游标的句柄。 如果复制的游标是只读游标,则重复的游标也是只读游标。 与构造搜索键或更新记录相关的任何状态都不会复制到重复的游标中。 此外,原始游标的位置不会复制到重复的游标中。 重复的游标始终在聚集索引上打开,其位置始终位于表的第一行上。
JET_ERR JET_API JetDupCursor(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_TABLEID* ptableid,
__in JET_GRBIT grbit
);
parameters
sesid
用于此调用的会话。
tableid
用于此调用的游标。
ptableid
指向 tableid 的指针。
grbit
保留供将来使用。
返回值
此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errClientRequestToStopJetService |
无法完成操作,因为由于调用 JetStopService,与会话关联的实例上的所有活动都已停止。 |
JET_errInstanceUnavailable |
无法完成该操作,因为与会话关联的实例遇到一个致命错误,该错误要求撤销对所有数据的访问以保护该数据的完整性。 此错误仅由 Windows XP 和更高版本返回。 |
JET_errNotInitialized |
无法完成操作,因为尚未初始化与会话关联的实例。 |
JET_errOutOfCursors |
不存在可用的游标资源。 |
JET_errRestoreInProgress |
无法完成操作,因为正在与会话关联的实例上执行还原操作。 |
JET_errSessionSharingViolation |
同一会话不能同时用于多个线程。 此错误仅由 Windows XP 和更高版本返回。 |
JET_errTermInProgress |
无法完成操作,因为与会话关联的实例正在关闭。 |
成功后, ptableid 设置为重复的游标。
失败时,不会进行任何更改。 tableid 的状态保持不变。
备注
复制的游标未复制整个游标状态。 重复游标(包括当前索引)的位置通常与给定游标不同。 重复的游标始终在聚集索引和表的第一行上返回。 如果表为空,则重复的游标不在任何行上。
使用 JetDupCursor 打开的表通常应使用 JetCloseTable 关闭。 当 在事务中调用 JetDupCursor 并且使用 JetRollback) 回滚事务 (时,会发生此规则的例外情况。 回滚事务时,游标会自动关闭。 在这种情况下,使用 JetCloseTable 关闭表是错误的。
可同时打开的表数直接受 JET_paramMaxOpenTables的影响。 有关详细信息 ,请参阅系统参数 。
要求
要求 | 值 |
---|---|
客户端 |
需要 Windows Vista、Windows XP 或 Windows 2000 Professional。 |
服务器 |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
标头 |
在 Esent.h 中声明。 |
Library |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |
另请参阅
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetRollback
JetStopService
系统参数