Compartilhar via


Função JetBeginSession

Aplica-se a: Windows | Windows Server

Função JetBeginSession

A função JetBeginSession inicia uma sessão e inicializa e retorna um identificador de sessão ESE (JET_SESID). As sessões controlam todo o acesso ao banco de dados e são usadas para controlar o escopo das transações. A sessão pode ser usada para iniciar, confirmar ou anular transações. A sessão também é usada para anexar, criar ou abrir um banco de dados. A sessão é usada como o contexto para todas as operações DDL e DML. Para aumentar a simultaneidade e o acesso paralelo ao banco de dados, várias sessões podem ser iniciadas.

    JET_ERR JET_API JetBeginSession(
      __in          JET_INSTANCE instance,
      __out         JET_SESID* psesid,
      __in_opt      JET_PCSTR szUserName,
      __in_opt      JET_PCSTR szPassword
    );

Parâmetros

instance

A instância de banco de dados a ser usada para essa chamada.

psesid

Ponteiro para a variável que o identificador de sessão inicializa no retorno bem-sucedido.

Szusername

Esse parâmetro é reservado.

Szpassword

Esse parâmetro é reservado.

Valor Retornado

Essa função permite o retorno de qualquer JET_ERRs definidos nesta API. Para obter mais informações sobre erros do Jet, 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_errClientRequestToStopJetService

Não é possível concluir a operação porque todas as atividades na instância associada à sessão cessaram como resultado de uma chamada para JetStopService.

JET_errInstanceUnavailable

Não é possível concluir a operação porque a instância associada à sessão encontrou um erro fatal que exige que o acesso a todos os dados seja revogado para proteger a integridade desses dados.

Esse erro só será retornado pelo Windows XP e versões posteriores.

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.

JET_errNotInitialized

Não é possível concluir a operação porque a instância associada à sessão ainda não foi inicializada.

JET_errOutOfMemory

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

JET_errOutOfSessions

O número de sessões que o mecanismo permitirá que o cliente inicie é limitado. Esse valor pode ser alterado usando JetSetSystemParameter com a constante JET_paramMaxSessions. O número padrão de sessões é 16. Consulte Parâmetros do sistema para obter detalhes sobre JET_paramMaxSessions.

JET_errRestoreInProgress

Não é possível concluir a operação porque uma operação de restauração está em andamento na instância associada à sessão.

JET_errTermInProgress

Não é possível concluir a operação porque a instância associada à sessão está sendo desligada.

Com êxito, o identificador de sessão é inicializado e pode ser usado para operações de banco de dados.

Em caso de falha, não há sessões disponíveis ou uma nova sessão não pôde ser inicializada.

Comentários

Atenção cuidadosa deve ser usada ao usar sessões em diferentes threads. Uma sessão rastreia em qual thread ele foi usado durante JetBeginTransaction, JetCommitTransaction ou JetRollback e gerará um erro se usado em vários threads com uma transação aberta. O JetResetSessionContext, JetSetSessionContext pode alterar esse comportamento. Como a sessão ainda é um contexto serializado, e várias operações de banco de dados não podem ser executadas em uma única sessão simultaneamente, somente serialmente. No entanto, você pode usar várias sessões para obter acesso simultâneo ao banco de dados. As sessões podem ser usadas dentro de uma transação entre threads definindo e redefinindo os contextos de sessão.

O identificador de sessão deve ser fechado com JetEndSession.

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 JetBeginSessionW (Unicode) e JetBeginSessionA (ANSI).

Consulte Também

JET_ERR
JET_INSTANCE
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetDupSession
JetEndSession
JetResetSessionContext
JetRollback
JetSetSessionContext
JetStopService
Parâmetros do sistema