Função JetSetSystemParameter

Aplica-se a: Windows | servidor Windows

Função JetSetSystemParameter

A função JetSetSystemParameter é usada para definir as inúmeras configurações do mecanismo de banco de dados.

    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
    );

Parâmetros

pinstância

Especifica a instância a ser usada para essa chamada.

Windows 2000: para Windows 2000, esse parâmetro é ignorado e deve ser sempre NULL.

Windows XP: para Windows XP e versões posteriores, esse parâmetro está um pouco sobrecarregado. Se o mecanismo estiver operando no modo herdado (Windows modo de compatibilidade 2000) em que há suporte para apenas uma instância, esse parâmetro poderá ser NULL ou conter a instância real retornada pelo JetInit. Em ambos os casos, todas as configurações de parâmetro do sistema são lidas dessa instância. Se o mecanismo estiver operando no modo de várias instâncias, esse parâmetro poderá ser NULL ou um ponteiro para uma instância criada usando JetInit ou JetCreateIndex. Quando esse parâmetro é NULL , a configuração de parâmetro do sistema global (ou padrão) é lida. Quando esse parâmetro é uma instância, a configuração do parâmetro do sistema para essa instância é lida.

Embora este seja tecnicamente um parâmetro fora, essa API nunca modifica o conteúdo do buffer fornecido.

sesid

Especifica a sessão a ser usada para essa chamada.

Quando especificada, a instância especificada é ignorada e a instância associada à sessão será usada.

paramid

A ID do parâmetro do sistema que será definido. Consulte parâmetros do sistema para obter uma lista completa de parâmetros do sistema e suas propriedades.

lParam

Fornece o valor a ser definido para o parâmetro do sistema selecionado se esse parâmetro do sistema for de um tipo inteiro.

szParam

Fornece o valor para o parâmetro do sistema selecionado se esse parâmetro do sistema for de um tipo de cadeia de caracteres.

Valor Retornado

Essa função retorna o tipo de dados JET_ERR com um dos seguintes códigos de retorno. Para obter mais informações sobre os possíveis erros do ESE, consulte Erros extensíveis Armazenamento mecanismo e parâmetros de tratamento de erros.

Código de retorno

Descrição

JET_errSuccess

A operação foi concluída com sucesso.

Windows Vista: em Windows Vista e versões posteriores, o sucesso pode ser retornado sem uma alteração no valor do parâmetro do sistema. Consulte o parâmetro JET_paramEnableAdvanced sistema no tópico Meta Parameters para obter mais informações.

JET_errAlreadyInitialized

A instância foi inicializada usando uma chamada para JetInit e essa operação não pode ser executada como resultado. Isso pode acontecer para JetSetSystemParameter quando é feita uma tentativa de configurar um parâmetro do sistema depois que uma alteração em seu valor não pode afetar o estado do mecanismo de banco de dados.

JET_errClientRequestToStopJetService

Não é possível concluir a operação porque toda a atividade na instância associada à sessão cessou como resultado de uma chamada ao JetStopService.

JET_errIndexTuplesInvalidLimits

Os parâmetros de índice de tupla especificados eram ilegais. Esse erro pode ser retornado por JetSetSystemParameter somente ao definir JET_paramIndexTuplesLengthMin, JET_paramIndexTuplesLengthMax ou JET_paramIndexTuplesToIndexMax para um valor ilegal.

Windows XP e Windows Server 2003: isso só pode acontecer em Windows XP e Windows Server 2003.

JET_errInitInProgress

Não é possível concluir a operação porque a instância associada à sessão está sendo inicializada.

JET_errInstanceUnavailable

Não é possível concluir a operação porque a instância associada à sessão encontrou um erro fatal que exige que o acesso a todos os dados seja revogado para proteger a integridade desses dados.

Windows XP: esse erro só será retornado por Windows XP e versões posteriores.

JET_errInvalidParameter

Um dos parâmetros fornecidos continha um valor inesperado ou continha um valor que não fazia sentido quando combinado com o valor de outro parâmetro. Isso pode acontecer para JetSetSystemParameter quando:

  • A ID do parâmetro do sistema especificada é inválida ou sem suporte.

  • Foi feita uma tentativa de definir um parâmetro de sistema com valor de cadeia de caracteres com uma cadeia de caracteres cujo comprimento estava fora do intervalo legal para o parâmetro.

  • Foi feita uma tentativa de definir um parâmetro de sistema com valor de cadeia de caracteres com um caminho de arquivo em que o comprimento de sua representação de caminho absoluto estava fora do intervalo legal para esse parâmetro.

    Windows Vista: isso só pode acontecer em Windows Vista e versões posteriores.

  • Foi feita uma tentativa de definir um parâmetro de sistema com valor inteiro com um inteiro que estava fora do intervalo legal para o parâmetro.

  • Foi feita uma tentativa de definir JET_paramUnicodeIndexDefault com um ponteiro NULLJET_UNICODEINDEX, uma LCID inválida ou um conjunto sem suporte de sinalizadores LCMapString.

    Windows Vista: isso só pode acontecer em Windows Vista e versões posteriores.

  • O parâmetro do sistema especificado não pode ser definido porque é somente leitura.

  • Foi feita uma tentativa de definir um parâmetro do sistema depois que o JetInit foi chamado, o mecanismo de banco de dados está no modo de instância única e uma sessão não foi especificada.

    Windows XP e Windows Server 2003: isso só pode acontecer em Windows XP e Windows Server 2003.

  • O parâmetro do sistema especificado é apenas global e foi feita uma tentativa de definir um valor específico da instância para esse parâmetro do sistema.

    Windows XP e Windows Server 2003: isso só pode acontecer em Windows XP e Windows Server 2003.

  • O parâmetro do sistema especificado é somente por instância e foi feita uma tentativa de definir o valor global para esse parâmetro do sistema.

    Windows XP e Windows Server 2003: isso só pode acontecer em Windows XP e Windows Server 2003.

JET_errInvalidPath

O caminho do sistema de arquivos especificado era inválido. Esse erro pode ser retornado por JetSetSystemParameter somente ao definir parâmetros do sistema que representam caminhos do sistema de arquivos. Por exemplo, JET_paramSystemPath pode retornar esse erro.

JET_errNotInitialized

Não é possível concluir a operação porque a instância associada à sessão ainda não foi inicializada.

JET_errRestoreInProgress

Não é possível concluir a operação porque uma operação de restauração está em andamento na instância associada à sessão.

JET_errTermInProgress

Não é possível concluir a operação porque a instância associada à sessão está sendo desligada.

JET_errInvalidSesid

O identificador de sessão é inválido ou refere-se a uma sessão fechada.

Esse erro não é retornado em todas as circunstâncias. Os identificadores são validados apenas com base no melhor esforço.

JET_errInvalidInstance

O identificador da instância é inválido ou refere-se a uma instância que foi desligada.

Esse erro não é retornado em todas as circunstâncias. Os identificadores são validados apenas com base no melhor esforço.

Windows Vista: esse erro só será retornado por Windows Vista e versões posteriores.

Com êxito, a configuração do parâmetro do sistema será definida como o valor fornecido.

Em caso de falha, a configuração do parâmetro do sistema permanecerá inalterada.

Comentários

JetSetSystemParameter faz um trabalho ruim de validar a configuração escolhida para cada parâmetro do sistema. É necessário cuidado para não depender dessa validação para impor boas configurações. Preste muita atenção à descrição de cada parâmetro do sistema e siga essas diretrizes para uma boa configuração de parâmetro do sistema.

Há um conjunto de parâmetros do sistema que devem ser sempre definidos para garantir que o mecanismo de banco de dados funcione conforme o esperado. Especificamente, todos os parâmetros do sistema que afetam o layout físico dos arquivos usados pelo mecanismo de banco de dados devem ser sempre definidos. Para obter mais informações, consulte Parâmetros do Sistema.

Cada parâmetro do sistema tem um valor padrão. Esses valores padrão evoluíram ao longo do tempo e são bastante arbitrários. É altamente recomendável que um aplicativo avalie todos os valores padrão para garantir que eles sejam apropriados. Se elas não forem apropriadas, elas deverão ser configuradas pelo aplicativo. Isso é importante, pois muitos desses parâmetros podem afetar muito a confiabilidade, o desempenho e a utilização de recursos do mecanismo de banco de dados.

Requisitos

Requisito Valor

Cliente

Requer Windows Vista, Windows XP ou Windows 2000 Professional.

Servidor

Requer Windows Server 2008, Windows Server 2003 ou Windows 2000 Server.

Cabeçalho

Declarado em Esent.h.

Biblioteca

Use ESENT.lib.

DLL

Requer ESENT.dll.

Unicode

Implementado como JetSetSystemParameterW (Unicode) e JetSetSystemParameterA (ANSI).

Consulte Também

JET_API_PTR
JET_ERR
JET_INSTANCE
JET_SESID
JetCreateInstance
JetGetSystemParameter
JetInit
Parâmetros do sistema