Função JetCreateDatabase

Aplica-se a: Windows | Windows Server

Função JetCreateDatabase

A função JetCreateDatabase cria e anexa um arquivo de banco de dados a ser usado com o mecanismo de banco de dados ESE. Chamar JetCreateDatabase2 com cpgDatabaseSizeMax definido como zero é idêntico a chamar JetCreateDatabase com szConnect definido como NULL. Atualmente, até sete bancos de dados podem ser criados por instância.

    JET_ERR JET_API JetCreateDatabase(
      __in          JET_SESID sesid,
      __in          JET_PCSTR szFilename,
      __in_opt      JET_PCSTR szConnect,
      __out         JET_DBID* pdbid,
      __in          JET_GRBIT grbit
    );

Parâmetros

sesid

O contexto de sessão de banco de dados a ser usado para a chamada à API.

szFilename

O nome do banco de dados a ser criado.

szConnect

Reservado para uso futuro. Definido como NULL.

pdbid

Ponteiro para um buffer que, em uma chamada bem-sucedida, contém o identificador do banco de dados. Em caso de falha, o valor é indefinido.

grbit

Um grupo de bits que especifica zero ou mais das opções a seguir.

Valor

Significado

JET_bitDbOverwriteExisting

Por padrão, se JetCreateDatabase for chamado e o banco de dados já existir, a chamada à API falhará e o banco de dados original não será substituído. JET_bitDbOverwriteExisting altera esse comportamento e o banco de dados antigo será substituído por um novo. Windows XP e posterior.

JET_bitDbRecoveryOff

JET_bitDbRecoveryOff desativa o registro em log. Definir esse bit perde a capacidade de reproduzir arquivos de log e recuperar o banco de dados para um estado utilizável consistente após um evento catastrófico.

JET_bitDbShadowingOff

Definir JET_bitDbShadowingOff desabilitará a duplicação de algumas estruturas de banco de dados internas (sombreamento). A duplicação dessas estruturas é feita para resiliência, portanto, a configuração JET_bitDbShadowingOff removerá essa resiliência.

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 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_errDatabaseDuplicate

O banco de dados nomeado em szFilename já existe. Quando esse erro é retornado, o banco de dados não é anexado.

JET_errDatabaseInUse

Pode ser retornado se o acesso exclusivo tiver sido solicitado, mas não puder ser concedido ou se outra sessão já tiver aberto o banco de dados exclusivamente.

JET_errDatabaseInvalidPages

Retornado quando cpgDatabaseSizeMax é maior que o número máximo de páginas permitidas em um banco de dados. O máximo atual é 2147483646 (0x7ffffffe).

JET_errDatabaseInvalidPath

Um caminho inválido foi fornecido em szFilename. szFilename deve ser não NULL. Por padrão, szFilename deve apontar para um diretório existente. O caminho será criado se JET_paramCreatePathIfNotExist estiver definido (consulte JetSetSystemParameter).

JET_errDatabaseLocked

Indica que outra sessão já abriu o banco de dados exclusivamente (usando JET_bitDbExclusive).

JET_errDatabaseNotFound

O banco de dados não foi anexado anteriormente (consulte JetAttachDatabase).

JET_errDatabaseSharingViolation

O arquivo de banco de dados já foi anexado por uma sessão diferente.

JET_errInTransaction

Foi feita uma tentativa de criar um banco de dados durante uma transação.

JET_errInvalidDatabase

Foi feita uma tentativa de abrir um arquivo que não é um arquivo de banco de dados válido.

JET_errOneDatabasePerSession

Foi feita uma tentativa de abrir mais de um banco de dados e JET_paramOneDatabasePerSession foi definido. Consulte Parâmetros de banco de dados.

JET_errOutOfMemory

A operação falhou porque a memória não pôde ser alocada.

JET_errTooManyAttachedDatabases

Somente um número finito de banco de dados pode ser anexado por instância. Atualmente, o limite é de sete bancos de dados por instância.

JET_wrnDatabaseAttached

Um aviso não fatal que indica que o arquivo de banco de dados já foi anexado por esta sessão.

JET_wrnFileOpenReadOnly

JET_wrnFileOpenReadOnly indica que o arquivo foi anexado somente leitura, mas JetCreateDatabase não passou JET_bitDbReadOnly. O banco de dados ainda é aberto com acesso somente leitura.

Comentários

Se o banco de dados especificado em szFilename existir e JET_bitDbOverwriteExisting não tiver sido passado, a chamada à API falhará. Se JET_bitDbOverwriteExisting tiver sido passado, o arquivo de banco de dados antigo será excluído primeiro.

Se a API criar um arquivo de banco de dados e, em seguida, atingir outro erro, ela limpo e excluirá o arquivo.

JetCreateDatabase abrirá implicitamente o banco de dados. Não é necessariamente chamar JetOpenDatabase posteriormente.

Requisitos

Requisito Valor

Cliente

Requer Windows Vista, Windows XP ou Windows 2000 Professional.

Servidor

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

Cabeçalho

Declarado em Esent.h.

Biblioteca

Use ESENT.lib.

DLL

Requer ESENT.dll.

Unicode

Implementado como JetCreateDatabaseW (Unicode) e JetCreateDatabaseA (ANSI).

Consulte Também

Arquivos extensíveis do mecanismo de armazenamento
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase2
JetOpenDatabase
JetSetSystemParameter
Parâmetros do sistema