Função JetAttachDatabase2

Aplica-se a: Windows | Windows Server

Função JetAttachDatabase2

A função JetAttachDatabase2 anexa um arquivo de banco de dados para uso com uma instância de banco de dados e especifica um tamanho máximo para esse banco de dados. Para usar o banco de dados, ele precisará ser aberto posteriormente com JetOpenDatabase.

    JET_ERR JET_API JetAttachDatabase2(
      __in          JET_SESID sesid,
      __in          const tchar* szFilename,
      __in          const unsigned long cpgDatabaseSizeMax,
      __in          JET_GRBIT grbit
    );

Parâmetros

sesid

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

szFilename

O nome do banco de dados a ser anexado.

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, que podem ser alterados usando a função JetSetSystemParameter antes de criar um banco de dados.

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

grbit

Um grupo de bits que contém as opções a serem usadas para essa chamada, que incluem zero ou mais dos seguintes:

Valor

Significado

JET_bitDbDeleteCorruptIndexes

Se JET_paramEnableIndexChecking tiver sido definido, todos os índices sobre dados Unicode serão excluídos. Para obter mais detalhes, consulte a seção Comentários.

JET_bitDbDeleteUnicodeIndexes

Todos os índices sobre dados Unicode serão excluídos, independentemente da configuração de JET_paramEnableIndexChecking. Para obter mais detalhes, consulte a seção Comentários.

JET_bitDbReadOnly

Impede modificações no banco de dados.

JET_bitDbUpgrade

Reservado para uso futuro.

Valor Retornado

A função retorna um dos códigos de erro JET_ERR . A seguir estão os retornados com mais frequência. (Para obter uma lista completa de erros para essa API, consulte Códigos de erro extensíveis do mecanismo de armazenamento.)

Código de retorno

Descrição

JET_errSuccess

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

JET_errBackupInProgress

A anexação de um banco de dados não é permitida durante um backup.

JET_errDatabaseFileReadOnly

O arquivo de banco de dados especificado por szFilename deve ser gravável. O atributo Read-Only não deve ser definido e o processo em execução deve ter privilégios suficientes para gravar no arquivo.

JET_errDatabaseInUse

O arquivo de banco de dados já está aberto por outro processo.

JET_errDatabaseInvalidPath

Um caminho inválido foi fornecido em szFilename. szFilename deve ser não NULL e consultar um caminho válido.

JET_errDatabaseSharingViolation

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

JET_errFileNotFound

O arquivo fornecido em szFilename não existe.

JET_errPrimaryIndexCorrupted

Há um erro com o índice primário. Isso pode ser de corrupção física (como corrupção de disco ou memória). Ele também pode ser retornado ao anexar um banco de dados modificado pela última vez em um sistema operacional mais antigo e o índice primário é sobre uma coluna com dados Unicode. Confira as observações para obter mais informações sobre índices sobre dados Unicode.

JET_errSecondaryIndexCorrupted

Há um erro com um índice secundário. Isso pode ser de corrupção física (como corrupção de disco ou memória). Ele também pode ser retornado ao anexar um banco de dados modificado pela última vez em um sistema operacional mais antigo e um índice secundário é sobre uma coluna com dados Unicode. Confira as observações para obter mais informações sobre índices sobre dados Unicode. Os índices secundários são completamente recriados quando um banco de dados é desfragmentado com um utilitário offline usando o seguinte comando: esentutl -d.

JET_errTooManyAttachedDatabases

Somente um número finito de bancos 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.

Comentários

O arquivo de banco de dados é desanexado usando JetDetachDatabase ou JetDetachDatabase2.

Consulte JetAttachDatabase para obter comentários.

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 JetAttachDatabase2W (Unicode) e JetAttachDatabase2A (ANSI).

Consulte Também

Arquivos extensíveis do mecanismo de armazenamento
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetAttachDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter