Função JetOpenTable

Aplica-se a: Windows | Windows Server

Função JetOpenTable

A função JetOpenTable abre um cursor em uma tabela criada anteriormente.

    JET_ERR JET_API JetOpenTable(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __in          const tchar* szTableName,
      __in_opt      const void* pvParameters,
      __in          unsigned long cbParameters,
      __in          JET_GRBIT grbit,
      __out         JET_TABLEID* ptableid
    );

Parâmetros

sesid

O contexto de sessão do banco de dados a ser usado.

dbid

O identificador de banco de dados a ser usado para localizar a tabela.

szTableName

O nome da tabela a ser aberta.

pvParameters

Preterido. Defina como NULL.

cbParameters

Preterido. Defina como 0 (zero).

grbit

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

Valor

Significado

JET_bitTableDenyRead

A tabela não pode ser aberta para acesso de leitura por outra sessão de banco de dados.

JET_bitTableDenyWrite

A tabela não pode ser aberta para acesso de gravação por outra sessão de banco de dados.

JET_bitTableNoCache

Não armazene em cache as páginas desta tabela.

JET_bitTablePermitDDL

Permite a modificação de DDL em tabelas sinalizadas como FixedDDL. Essa opção deve ser usada com a opção JET_bitTableDenyRead.

JET_bitTablePreread

Fornece uma dica de que a tabela provavelmente não está no cache de buffer e que a pré-leitura pode ser benéfica para o desempenho.

JET_bitTableReadOnly

Solicita acesso somente leitura à tabela.

JET_bitTableSequential

A tabela deve ser muito agressivamente pré-buscada do disco porque o aplicativo a examinará sequencialmente.

JET_bitTableUpdatable

Solicita acesso de gravação à tabela.

Ptableid

Em caso de êxito, aponta para o identificador da tabela. Em caso de falha, o conteúdo de ptableid é indefinido.

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_errInvalidDatabaseId

dbid não é um identificador de banco de dados válido.

JET_errInvalidgrbit

Uma combinação ruim de grbit foi passada.

JET_errInvalidName

O nome fornecido em szTableName é inválido.

Para obter mais informações sobre nomes de tabela válidos, consulte o parâmetro szTableName em JetCreateTable.

JET_errObjectNotFound

Foi feita uma tentativa de abrir uma tabela que não existe no banco de dados.

JET_errOutOfCursors

A operação falhou porque o mecanismo não pode alocar os recursos necessários para abrir um novo cursor. Consulte a seção Comentários.

JET_errTableInUse

A tabela está sendo usada por outra operação de banco de dados.

JET_wrnTableInUseBySystem

Um aviso não fatal que indica que a tabela está sendo usada pelo sistema.

JET_errTableLocked

A tabela é bloqueada por outra operação de banco de dados.

JET_errTooManyOpenTables

Foi feita uma tentativa de abrir muitas tabelas exclusivas ao mesmo tempo. Consulte a seção Comentários.

Comentários

As tabelas abertas com JetOpenTable geralmente devem ser fechadas com JetCloseTable. A exceção a essa regra ocorre quando JetOpenTable é chamado em uma transação e a transação é revertida (com JetRollback). Ao reverter uma transação, a tabela é fechada automaticamente. Nesse caso, é um erro fechar a tabela com JetCloseTable.

É legal abrir tabelas do sistema com JetOpenTable (por exemplo, MSysObjects, MSysUnicodeFixup). O esquema das tabelas do sistema pode ser alterado, portanto, o acesso a tabelas do sistema é desencorajado. O número de tabelas exclusivas que podem ser abertas simultaneamente é afetado diretamente por JET_paramMaxOpenTables. Se a tabela estiver aberta no momento, um novo cursor será criado na tabela. Os recursos de cursor são configurados usando JetSetSystemParameter com JET_paramMaxCursors. Confira também JetDupCursor.

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 JetOpenTableW (Unicode) e JetOpenTableA (ANSI).

Consulte Também

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetDupCursor
JetRollback
JetSetSystemParameter
Parâmetros do recurso