Partager via


Fonction JetBeginSession

S’applique à : Windows | Windows Server

Fonction JetBeginSession

La fonction JetBeginSession démarre une session et initialise et retourne un handle de session ESE (JET_SESID). Les sessions contrôlent tous les accès à la base de données et sont utilisées pour contrôler l’étendue des transactions. La session peut être utilisée pour démarrer, valider ou abandonner des transactions. La session est également utilisée pour attacher, créer ou ouvrir une base de données. La session est utilisée comme contexte pour toutes les opérations DDL et DML. Pour augmenter la concurrence et l’accès parallèle à la base de données, plusieurs sessions peuvent être démarrées.

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

Paramètres

instance

Base de données instance à utiliser pour cet appel.

psesid

Pointeur vers la variable que la gestion de session initialise en cas de retour réussi.

szUserName

Ce paramètre est réservé.

szPassword

Ce paramètre est réservé.

Valeur renvoyée

Cette fonction permet le retour de tous les JET_ERRdéfinis dans cette API. Pour plus d’informations sur les erreurs Jet, consultez Erreurs du moteur de stockage extensible et Paramètres de gestion des erreurs.

Code de retour

Description

JET_errSuccess

L’opération s’est terminée avec succès.

JET_errClientRequestToStopJetService

Il n’est pas possible d’effectuer l’opération, car toutes les activités sur le instance associée à la session ont cessé à la suite d’un appel à JetStopService.

JET_errInstanceUnavailable

Il n’est pas possible d’effectuer l’opération, car le instance associé à la session a rencontré une erreur irrécupérable qui nécessite que l’accès à toutes les données soit révoqué pour protéger l’intégrité de ces données.

Cette erreur sera retournée uniquement par Windows XP et les versions ultérieures.

JET_errInvalidParameter

L’un des paramètres fournis contenait une valeur inattendue ou contenait une valeur qui n’était pas pertinente lorsqu’elle était combinée avec la valeur d’un autre paramètre.

JET_errNotInitialized

Il n’est pas possible d’effectuer l’opération, car le instance associé à la session n’a pas encore été initialisé.

JET_errOutOfMemory

L’opération a échoué, car la mémoire n’a pas pu être allouée.

JET_errOutOfSessions

Le nombre de sessions que le moteur permettra au client de démarrer est limité. Cette valeur peut être modifiée à l’aide de JetSetSystemParameter avec la constante JET_paramMaxSessions. Le nombre de sessions par défaut est de 16. Pour plus d’informations sur JET_paramMaxSessions, consultez Paramètres système .

JET_errRestoreInProgress

Il n’est pas possible d’effectuer l’opération, car une opération de restauration est en cours sur le instance associé à la session.

JET_errTermInProgress

Il n’est pas possible d’effectuer l’opération, car le instance associé à la session est en cours d’arrêt.

En cas de réussite, le handle de session est initialisé et peut être utilisé pour les opérations de base de données.

En cas d’échec, aucune session n’est disponible ou une nouvelle session n’a pas pu être initialisée.

Notes

Une attention particulière doit être utilisée lors de l’utilisation de sessions sur différents threads. Une session suit le thread sur lequel elle a été utilisée pendant JetBeginTransaction, JetCommitTransaction ou JetRollback, et génère une erreur si elle est utilisée sur plusieurs threads avec une transaction ouverte. JetResetSessionContext, JetSetSessionContext peut modifier ce comportement. Étant donné que la session est toujours un contexte sérialisé, et que plusieurs opérations de base de données ne peuvent pas être effectuées simultanément sur une seule session, uniquement en série. Toutefois, vous pouvez utiliser plusieurs sessions pour obtenir un accès simultané à la base de données. Les sessions peuvent être utilisées à l’intérieur d’une transaction entre les threads en définissant et en réinitialisant les contextes de session.

Le handle de session doit être fermé avec JetEndSession.

Spécifications

Condition requise Valeur

Client

Nécessite Windows Vista, Windows XP ou Windows 2000 Professionnel.

Serveur

Nécessite Windows Server 2008, Windows Server 2003 ou Windows 2000 Server.

En-tête

Déclaré dans Esent.h.

Bibliothèque

Utilisez ESENT.lib.

DLL

Nécessite ESENT.dll.

Unicode

Implémenté en tant que JetBeginSessionW (Unicode) et JetBeginSessionA (ANSI).

Voir aussi

JET_ERR
JET_INSTANCE
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetDupSession
JetEndSession
JetResetSessionContext
JetRollback
JetSetSessionContext
JetStopService
Paramètres système