Функция JetSetLS
Применимо к: Windows | Windows Server
Функция JetSetLS
Функция JetSetLS позволяет приложению связать дескриптор контекста, известный как Локальное хранилище, с курсором или таблицей, связанной с этим курсором. Этот дескриптор контекста может использоваться приложением для хранения вспомогательных данных, связанных с курсором или таблицей. Позже приложение получает уведомление с помощью обратного вызова среды выполнения, когда дескриптор контекста должен быть освобожден. Это позволяет связать динамически выделенное состояние с курсором или таблицей.
Windows XP:JetSetLS представлена в Windows XP.
JET_ERR JET_API JetSetLS(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_LS ls,
__in JET_GRBIT grbit
);
Параметры
sesid
Сеанс, используемый для этого вызова.
tableid
Курсор, используемый для этого вызова.
ls
Дескриптор контекста, связанный с курсором или таблицей.
При указании JET_bitLSReset фактическое значение этого параметра игнорируется и используется JET_LSNil.
grbit
Группа битов, содержащая параметры, которые будут использоваться для этого вызова, которые включают ноль или более следующих элементов.
Значение |
Значение |
---|---|
JET_bitLSCursor |
Этот параметр указывает, что дескриптор контекста должен быть связан с заданным курсором. Если ни JET_bitLSCursor, ни JET_bitLSTable не указаны, то предполагается JET_bitLSCursor. Использовать этот параметр с JET_bitLSTable недопустимо. Операция завершится ошибкой с JET_errInvalidgrbit, если предпринята попытка. |
JET_bitLSReset |
Этот параметр указывает, что указанный дескриптор контекста следует игнорировать и что дескриптор контекста для выбранного объекта должен быть сброшен до JET_LSNil. Важно отметить, что это действие не приведет к обратному вызову для очистки предыдущего значения дескриптора контекста для выбранного объекта. Правильную очистку предыдущего дескриптора контекста можно выполнить с помощью JetGetLS с JET_bitLSReset. Дополнительные сведения см. в разделе JetGetLS . |
JET_bitLSTable |
Этот параметр указывает, что дескриптор контекста должен быть связан с таблицей, связанной с заданным курсором. Использовать этот параметр с JET_bitLSCursor недопустимо. Операция завершится ошибкой с JET_errInvalidgrbit, если предпринята попытка. |
Возвращаемое значение
Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.
Код возврата |
Описание |
---|---|
JET_errSuccess |
Операция выполнена успешно. |
JET_errClientRequestToStopJetService |
Невозможно выполнить операцию, так как все действия экземпляра, связанного с сеансом, прекратились в результате вызова JetStopService. |
JET_errInvalidgrbit |
Один из запрошенных параметров был недопустим, неправильно использован или не реализован. Это может произойти для JetSetLS , если указаны JET_bitLSCursor и JET_bitLSTable. |
JET_errInstanceUnavailable |
Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, столкнулся с неустранимой ошибкой, требующей отмены доступа ко всем данным для защиты целостности этих данных. Эта ошибка будет возвращена только в Windows XP и более поздних выпусках. |
JET_errLSAlreadySet |
Данный дескриптор контекста не может быть связан с запрошенным объектом, так как с ним уже связан дескриптор контекста. |
JET_errLSCallbackNotSpecified |
Не удалось связать заданный дескриптор контекста с запрошенным объектом, так как обратный вызов среды выполнения не настроен для экземпляра, связанного с сеансом. |
JET_errNotInitialized |
Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, еще не инициализирован. |
JET_errRestoreInProgress |
Невозможно выполнить операцию, так как операция восстановления выполняется в экземпляре, связанном с сеансом. |
JET_errTermInProgress |
Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, завершает работу. |
При успешном выполнении заданный дескриптор контекста был успешно связан с запрошенным объектом. Изменение состояния базы данных не произойдет.
В случае сбоя состояние запрошенного объекта не изменилось. Изменение состояния базы данных не произойдет.
Комментарии
Локальное хранилище для курсора или таблицы должно рассматриваться как энергонезависимый кэш. Сначала приложение должно попытаться получить дескриптор контекста с помощью JetGetLS. Если значение не задано (то есть оно JET_LSNil), приложение должно создать новый контекст и загрузить его в кэш с помощью JetSetLS. Приложение может очистить кэш с помощью вызова JetGetLS с JET_bitLSReset. Если ядро СУБД очищает кэш, будет создан обратный вызов среды выполнения, чтобы дать приложению возможность очистить этот контекст. Тип обратного вызова будет JET_cbtypFreeCursorLS для дескриптора контекста, связанного с курсором, и JET_cbtypFreeTableLS для дескриптора контекста, связанного с таблицей. В любом случае дескриптор контекста будет передан как pvArg1. Дополнительные сведения см. в разделе JET_CALLBACK .
Обратный вызов среды выполнения должен быть правильно настроен для экземпляра, связанного с данным сеансом, прежде чем можно будет использовать локальное хранилище. Этот обратный вызов можно задать с помощью JetSetSystemParameter с JET_paramRuntimeCallback. Дополнительные сведения см. в разделе JetSetSystemParameter и JET_paramRuntimeCallback в системных параметрах.
Требования
Требование | Значение |
---|---|
Клиент |
Требуется Windows Vista или Windows XP. |
Сервер |
Требуется Windows Server 2008 или Windows Server 2003. |
Верхняя часть |
Объявлено в Esent.h. |
Библиотека |
Используйте ESENT.lib. |
DLL |
Требуется ESENT.dll. |
См. также:
JET_CALLBACK
JET_ERR
JET_GRBIT
JET_LS
JET_SESID
JET_TABLEID
JetGetLS
JetSetSystemParameter
Системные параметры