Функция 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
);
Параметры
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 (нуль). Однако, если JetGetCursorInfo возвращает JET_errSuccess, другой сеанс по-прежнему может обновить эту запись до текущего сеанса. Таким образом, обновление текущей записи этим сеансом в текущей транзакции по-прежнему может привести к конфликту записи.
Требования
Требование | Значение |
---|---|
Клиент |
Требуется Windows Vista, Windows XP или Windows 2000 Professional. |
Сервер |
Требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server. |
Верхняя часть |
Объявлено в Esent.h. |
Библиотека |
Используйте ESENT.lib. |
DLL |
Требуется ESENT.dll. |
См. также:
JET_ERR
JET_SESID
JET_TABLEID
JetGetLock
JetPrepareUpdate
JetStopService
JetUpdate