Fonction JetBeginSession

S’applique à : Windows | Windows Serveurs

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 commencer, 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 l’accès concurrentiel 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

instancié

Instance de base de données à utiliser pour cet appel.

psesid

Pointeur vers la variable que le handle de session Initialise lors d’un 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 tout JET_ERRs qui sont dé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 de terminer l’opération, car toute activité sur l’instance associée à la session a été interrompue suite à un appel à JetStopService.

JET_errInstanceUnavailable

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

cette erreur est renvoyé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’a pas de sens lorsqu’elle était associée à la valeur d’un autre paramètre.

JET_errNotInitialized

Impossible de terminer l’opération, car l’instance associée à la session n’a pas encore été initialisée.

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 autorise le client à 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 16. Pour plus d’informations sur la JET_paramMaxSessions, consultez paramètres système .

JET_errRestoreInProgress

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

JET_errTermInProgress

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

En cas de réussite, le descripteur 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, JetCommitTransactionou JetRollback, et génère une erreur si elle est utilisée sur plusieurs threads avec une transaction ouverte. Le JetResetSessionContext, JetSetSessionContext peut modifier ce comportement. Étant donné que la session est toujours un contexte sérialisé, plusieurs opérations de base de données ne peuvent pas être exécutées simultanément sur une seule session, en série uniquement. 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 descripteur de session doit être fermé avec JetEndSession.

Spécifications

Condition requise Valeur

Client

requiert Windows Vista, Windows XP ou Windows 2000 Professional.

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

Requiert 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