JetGetCursorInfo 函数

适用于: Windows |Windows Server

JetGetCursorInfo 函数

JetGetCursorInfo 函数用于根据记录的当前更新状态确定游标的当前记录的更新是否会导致写入冲突。 即使 JetGetCursorInfo 返回JET_errSuccess,也可能最终返回写入冲突,因为另一个会话可能会在当前会话能够更新同一记录之前更新记录。

    JET_ERR JET_API JetGetCursorInfo(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         void* pvResult,
      __in          unsigned long cbMax,
      __in          unsigned long InfoLevel
    );

parameters

sesid

将用于此调用的会话。

tableid

将用于此调用的游标。

pvResult

保留供将来使用。

cbMax

必须设置为 0 (零) ,否则未使用。 它可用于将来的功能。

InfoLevel

必须设置为 0 (零) ,否则未使用。 它可用于将来的功能。

返回值

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

返回代码

说明

JET_errSuccess

操作已成功完成。

JET_errClientRequestToStopJetService

无法完成操作,因为与会话关联的实例上的所有活动都因调用 JetStopService 而停止。

JET_errInstanceUnavailable

无法完成操作,因为与会话关联的实例遇到严重错误,要求撤销对所有数据的访问权限以保护该数据的完整性。 此错误仅由 Windows XP 及更高版本返回。

JET_errInvalidParameter

cbMax 不是 0 (零) 或 InfoLevel 不是 0 (零) 。

JET_errNoCurrentRecord

游标当前不在记录上,因此无法返回有关逻辑记录的信息。

JET_errNotInitialized

无法完成操作,因为与会话关联的实例尚未初始化。

JET_errRestoreInProgress

无法完成该操作,因为正在对与会话关联的实例执行还原操作。

JET_errSessionSharingViolation

同一会话不能同时用于多个线程。 此错误仅由 Windows XP 及更高版本返回。

JET_errTermInProgress

无法完成操作,因为正在关闭与会话关联的实例。

JET_errWriteConflict

游标的当前记录已由另一个会话更新,此会话对此记录的更新将导致写入冲突。

成功后,此操作不会影响游标的位置,但仅指示当前没有其他会话更新此记录。

失败时,如果返回负错误代码,则不会对游标或数据库造成任何影响。

备注

此操作不会影响游标或数据的状态。 它仅返回一个错误代码,描述调用会话对当前记录的更新是已知导致JET_errWriteConflict,还是未知返回JET_errWriteConflict。 如果另一个会话已更新此记录以使用,则确定此会话对此记录的更新将导致写入冲突。 在会话提交事务或将其事务回滚到事务级别 0 (零) 之前,这为 true。 但是,如果 JetGetCursorInfo 返回JET_errSuccess,则另一个会话仍可能在当前会话之前更新此记录,因此,此会话在其当前事务中更新当前记录仍可能导致写入冲突。

要求

要求

客户端

需要 Windows Vista、Windows XP 或 Windows 2000 专业版。

服务器

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

标头

在 Esent.h 中声明。

Library

使用 ESENT.lib。

DLL

需要ESENT.dll。

另请参阅

JET_ERR
JET_SESID
JET_TABLEID
JetGetLock
JetPrepareUpdate
JetStopService
JetUpdate