Compartilhar via


Função JetCreateDatabase2

Aplica-se a: Windows | Windows Server

Função JetCreateDatabase2

A função JetCreateDatabase2 cria e anexa um arquivo de banco de dados a ser usado com o mecanismo de banco de dados ESE com um tamanho máximo de banco de dados especificado. 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 JetCreateDatabase2(
      __in          JET_SESID sesid,
      __in          const tchar* szFilename,
      __in          const unsigned long cpgDatabaseSizeMax,
      __out         JET_DBID* pdbid,
      __in          JET_GRBIT grbit
    );

Parâmetros

sesid

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

szFilename

O nome do banco de dados a ser criado.

cpgDatabaseSizeMax

O tamanho máximo, em páginas de banco de dados, para o banco de dados. O tamanho da página de banco de dados padrão é de 4 quilobytes e pode ser alterado com JetSetSystemParameter antes de criar um banco de dados.

Passar zero significa que não há nenhum máximo imposto pelo mecanismo de banco de dados.

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 ou JetCreateDatabase2 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, definir 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 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_errDatabaseDuplicate

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

JET_errDatabaseInUse

Poderá 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 do sistema.

JET_errOutOfMemory

O sistema ficou sem recursos.

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.

JetCreateDatabase2 abrirá implicitamente o banco de dados. Não é necessário 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 JetCreateDatabase2W (Unicode) e JetCreateDatabase2A (ANSI).

Consulte Também

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