Функция JetSetSystemParameter

Область применения: Windows | сервер Windows

Функция JetSetSystemParameter

Функция JetSetSystemParameter используется для задания многочисленных параметров конфигурации ядра СУБД.

    JET_ERR JET_API JetSetSystemParameter(
      __in_out_opt  JET_INSTANCE* pinstance,
      __in          JET_SESID sesid,
      __in          unsigned long paramid,
      __in          JET_API_PTR lParam,
      __in_opt      JET_PCSTR szParam
    );

Параметры

pinstance

Указывает экземпляр, используемый для этого вызова.

Windows 2000. Для Windows 2000 этот параметр игнорируется и всегда должен иметь значение NULL.

Windows XP: для Windows XP и более поздних выпусков этот параметр несколько перегружен. Если подсистема работает в устаревшем режиме (режим совместимости Windows 2000), где поддерживается только один экземпляр, этот параметр может иметь значение NULL или содержать фактический экземпляр, возвращенный JetInit. В любом случае все параметры системного параметра считываются из одного экземпляра. Если подсистема работает в режиме с несколькими экземплярами, этот параметр может иметь значение NULL или указатель на экземпляр, созданный с помощью JetInit или JetCreateIndex. Если этот параметр имеет значение NULL , то считывается глобальный параметр системного параметра (или по умолчанию). Если этот параметр является экземпляром, то параметр системного параметра для этого экземпляра считывается.

Несмотря на то, что этот параметр технически не является параметром out, этот API никогда не изменяет содержимое предоставленного буфера.

sesid

Указывает сеанс, используемый для этого вызова.

При указании указанный экземпляр игнорируется, а экземпляр, связанный с сеансом, будет использоваться.

paramid

Идентификатор системного параметра, который будет задан. Полный список системных параметров и их свойств см. в разделе "Системные параметры ".

lParam

Предоставляет значение, которое необходимо задать для выбранного системного параметра, если этот системный параметр имеет целочисленный тип.

szParam

Предоставляет значение выбранного системного параметра, если этот системный параметр имеет строковый тип.

Возвращаемое значение

Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделе "Расширяемые ошибки служба хранилища обработчика" и "Параметры обработки ошибок".

Код возврата

Описание

JET_errSuccess

Операция выполнена успешно.

Windows Vista: в Windows Vista и более поздних выпусках успех можно вернуть без изменения значения системного параметра. Дополнительные сведения см. в разделе JET_paramEnableAdvanced системных параметров в разделе "Метаданные ".

JET_errAlreadyInitialized

Экземпляр был инициализирован с помощью вызова JetInit , и эта операция не может быть выполнена в результате. Это может произойти для JetSetSystemParameter , если предпринята попытка настроить системный параметр после изменения его значения не может повлиять на состояние ядра СУБД.

JET_errClientRequestToStopJetService

Невозможно завершить операцию, так как все действия в экземпляре, связанном с сеансом, прекратились в результате вызова JetStopService.

JET_errIndexTuplesInvalidLimits

Указанные параметры индекса кортежа были недопустимыми. Эта ошибка может быть возвращена JetSetSystemParameter только при задании JET_paramIndexTuplesLengthMin, JET_paramIndexTuplesLengthMax или JET_paramIndexTuplesToIndexMax недопустимого значения.

Windows XP и Windows Server 2003. Это может произойти только в Windows XP и Windows Server 2003.

JET_errInitInProgress

Невозможно завершить операцию, так как экземпляр, связанный с сеансом, инициализируется.

JET_errInstanceUnavailable

Невозможно завершить операцию, так как экземпляр, связанный с сеансом, столкнулся со неустранимой ошибкой, требующей отмены доступа ко всем данным для защиты целостности этих данных.

Windows XP: эта ошибка будет возвращена только в Windows XP и более поздних выпусках.

JET_errInvalidParameter

Один из указанных параметров содержал непредвиденное значение или содержал значение, которое не имеет смысла при объединении со значением другого параметра. Это может произойти для JetSetSystemParameter , когда:

  • Указанный идентификатор системного параметра недопустим или не поддерживается.

  • Предпринята попытка задать строковый системный параметр со строкой, длина которой находится за пределами юридического диапазона для параметра.

  • Предпринята попытка задать системный параметр со строковым значением с путем к файлу, в котором длина абсолютного представления пути находится за пределами юридического диапазона для этого параметра.

    Windows Vista: это может произойти только в Windows Vista и более поздних выпусках.

  • Предпринята попытка задать системный параметр с целочисленным значением с целым числом, находящимся за пределами юридического диапазона для параметра.

  • Предпринята попытка задать JET_paramUnicodeIndexDefault с помощью указателя NULLJET_UNICODEINDEX недопустимого LCID или неподдерживаемого набора флагов LCMapString.

    Windows Vista: это может произойти только в Windows Vista и более поздних выпусках.

  • Не удается задать указанный системный параметр, так как он доступен только для чтения.

  • Предпринята попытка задать системный параметр после вызова JetInit , ядро СУБД находится в режиме одного экземпляра, и сеанс не был указан.

    Windows XP и Windows Server 2003. Это может произойти только в Windows XP и Windows Server 2003.

  • Указанный системный параметр является глобальным только и предпринята попытка задать конкретное значение экземпляра для этого системного параметра.

    Windows XP и Windows Server 2003. Это может произойти только в Windows XP и Windows Server 2003.

  • Указанный системный параметр предназначен только для каждого экземпляра, и предпринята попытка задать глобальное значение для этого системного параметра.

    Windows XP и Windows Server 2003. Это может произойти только в Windows XP и Windows Server 2003.

JET_errInvalidPath

Указанный путь к файловой системе недопустим. Эта ошибка может быть возвращена JetSetSystemParameter только при задании системных параметров, представляющих пути файловой системы. Например, JET_paramSystemPath может вернуть эту ошибку.

JET_errNotInitialized

Невозможно завершить операцию, так как экземпляр, связанный с сеансом, еще не инициализирован.

JET_errRestoreInProgress

Невозможно выполнить операцию, так как выполняется операция восстановления в экземпляре, связанном с сеансом.

JET_errTermInProgress

Невозможно завершить операцию, так как экземпляр, связанный с сеансом, завершается.

JET_errInvalidSesid

Дескриптор сеанса является недопустимым или ссылается на закрытый сеанс.

Эта ошибка не возвращается при всех обстоятельствах. Дескрипторы проверяются только на основе наилучших усилий.

JET_errInvalidInstance

Дескриптор экземпляра является недопустимым или ссылается на экземпляр, который был завершен.

Эта ошибка не возвращается при всех обстоятельствах. Дескрипторы проверяются только на основе наилучших усилий.

Windows Vista: эта ошибка будет возвращена только в Windows Vista и более поздних выпусках.

При успешном выполнении параметр для системного параметра будет иметь указанное значение.

При сбое параметр системного параметра останется неизменным.

Remarks

JetSetSystemParameter выполняет плохое задание проверки выбранного параметра для каждого системного параметра. Необходимо соблюдать осторожность, чтобы не полагаться на эту проверку, чтобы применить хорошие параметры. Обратите особое внимание на описание каждого системного параметра и следуйте этим рекомендациям, чтобы получить хороший параметр системного параметра.

Существует набор системных параметров, которые всегда должны быть заданы, чтобы гарантировать, что ядро СУБД работает должным образом. В частности, все системные параметры, влияющие на физический макет файлов, используемых ядром СУБД, всегда должны быть заданы. Дополнительные сведения см. в разделе "Системные параметры".

Каждый системный параметр имеет значение по умолчанию. Эти значения по умолчанию эволюционировали с течением времени и являются довольно произвольными. Настоятельно рекомендуется, чтобы приложение оценило все значения по умолчанию, чтобы убедиться, что они подходят. Если они не подходят, они должны быть настроены приложением. Это важно, так как многие из этих параметров могут значительно повлиять на надежность, производительность и использование ресурсов ядра СУБД.

Требования

Требование Значение

Клиент

Требуется Windows Vista, Windows XP или Windows 2000 Professional.

Server

Требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server.

Верхняя часть

Объявлен в Esent.h.

Библиотека

Используйте ESENT.lib.

DLL

Требуется ESENT.dll.

Юникод

Реализован как JetSetSystemParameterW (Юникод) и JetSetSystemParameterA (ANSI).

См. также:

JET_API_PTR
JET_ERR
JET_INSTANCE
JET_SESID
JetCreateInstance
JetGetSystemParameter
JetInit
Системные параметры