Função JetCreateInstance2
Aplica-se a: Windows | Windows Server
Função JetCreateInstance2
A função JetCreateInstance2 é usada para alocar uma nova instância do mecanismo de banco de dados para uso em um único processo, com um nome de exibição especificado.
O Windows XP:JetCreateInstance2 é introduzido no Windows XP.
JET_ERR JET_API JetCreateInstance2(
__out JET_INSTANCE* pinstance,
__in_opt const tchar* szInstanceName,
__in_opt const tchar* szDisplayName,
__in JET_GRBIT grbit
);
Parâmetros
pinstance
O buffer de saída que receberá a instância recém-criada.
szInstanceName
Especifica um identificador de cadeia de caracteres exclusivo para a instância a ser criada. Essa cadeia de caracteres deve ser exclusiva em um determinado processo que hospeda o mecanismo de banco de dados.
Nota Um valor NULL é tratado como um identificador de cadeia de caracteres válido para uma instância. Somente uma instância pode ter um identificador de cadeia de caracteres NULL.
Szdisplayname
Um nome de exibição para a instância a ser criada. Quando esse parâmetro não está presente, presume-se que seu valor seja NULL.
grbit
Reservado para uso futuro. Quando esse parâmetro não está presente, presume-se que seu valor seja zero.
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 de ESE, consulte Erros extensíveis do mecanismo de armazenamento e parâmetros de tratamento de erros.
Código de retorno |
Descrição |
---|---|
JET_errSuccess |
A operação foi concluída com sucesso. |
JET_errInstanceNameInUse |
O nome da instância especificada já está em uso para esse processo. |
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 JetCreateInstance quando pinstance é NULL. |
JET_errRunningInOneInstanceMode |
A operação falhou porque não pode ser usada quando o mecanismo de banco de dados está operando no modo de instância única (modo de compatibilidade do Windows 2000). |
JET_errTooManyInstances |
Não foi possível criar uma nova instância porque o número máximo de instâncias foi atingido. O número máximo de instâncias com suporte é configurado usando JetSetSystemParameter usando JET_paramMaxInstances. |
Em caso de êxito, uma nova instância será alocada e o identificador para ela será retornado. Neste ponto, todos os parâmetros do sistema para a instância terão os valores dos parâmetros de sistema padrão globais. Depois que uma instância for alocada, ela precisará ser encerrada e/ou liberada posteriormente.
Em caso de falha, um erro que representa a causa da falha será retornado e nenhuma instância será alocada.
Comentários
Uma instância deve ser inicializada com uma chamada para JetInit antes de poder ser usada por qualquer outra coisa que não seja JetSetSystemParameter.
Uma instância é destruída por uma chamada para a função JetTerm , mesmo que essa instância nunca tenha sido inicializada usando JetInit. O número máximo de instâncias que podem ser criadas a qualquer momento é controlado por JET_paramMaxInstances, que pode ser configurado por uma chamada para JetSetSystemParameter. Uma instância é a unidade de capacidade de recuperação para o mecanismo de banco de dados. Ele controla o ciclo de vida de todos os arquivos usados para proteger a integridade dos dados em um conjunto de arquivos de banco de dados. Esses arquivos incluem o arquivo de ponto de verificação e os arquivos de log de transações.
Se a função for bem-sucedida, o mecanismo de banco de dados será alterado automaticamente para o modo de várias instâncias como um efeito colateral dessa chamada. Se o aplicativo quiser permitir apenas uma instância no processo, o JetInit deverá ser usado para iniciar o mecanismo de banco de dados no modo de compatibilidade do Windows 2000.
Se presente, o parâmetro szDisplayName será usado para identificar a instância em locais como Log de Eventos ou para outros chamadores, como aplicativos de backup (por meio de funções como JetGetInstanceInfo ou JetOSSnapshotFreeze). Se o nome de exibição não for fornecido, o parâmetro szInstanceName exclusivo será usado, se presente, caso contrário, uma cadeia de caracteres vazia será retornada. Se o mecanismo não tiver o modo de execução definido, após essa chamada, ele será definido como modo de várias instâncias.
A sequência de inicialização típica para um processo que potencialmente executa várias instâncias do Jet seria:
Uma chamada para JetCreateInstance2 que alocará e nomeará a instância.
Várias chamadas para JetSetSystemParameter para essa instância para definir parâmetros de sistema diferentes. Observe que alguns parâmetros do sistema precisam ser exclusivos para cada instância (como JET_paramSystemPath ou JET_paramLogFilePath), portanto, provavelmente, cada um deles precisará ser definido.
Inicie a instância usando JetInit ou JetInit2. Para encerrar e/ou liberar uma instância, use JetTerm ou JetTerm2.
Se essa for a primeira instância a ser iniciada, haverá várias etapas adicionais que serão executadas durante essa chamada para fazer a inicialização e a configuração básicas do sistema. Várias dessas etapas podem resultar em erros específicos começando com JET_errOutOfMemory mas outros também (consulte Valores retornados para obter mais informações).
Requisitos
Requisito | Valor |
---|---|
Cliente |
Requer o Windows Vista ou o Windows XP. |
Servidor |
Requer o Windows Server 2008 ou o Windows Server 2003. |
Cabeçalho |
Declarado em Esent.h. |
Biblioteca |
Use ESENT.lib. |
DLL |
Requer ESENT.dll. |
Unicode |
Implementado como JetCreateInstance2W (Unicode) e JetCreateInstance2A (ANSI). |
Consulte Também
JET_ERR
JET_INSTANCE
JetCreateInstance
JetEnableMultiInstance
JetGetInstanceInfo
JetInit
JetInit2
JetOSSnapshotFreeze
JetSetSystemParameter
JetTerm
JetTerm2