Funzione JetBeginSession
Si applica a: Windows | Windows Server
Funzione JetBeginSession
La funzione JetBeginSession avvia una sessione e inizializza e restituisce un handle di sessione ESE (JET_SESID). Le sessioni controllano tutti l'accesso al database e vengono usate per controllare l'ambito delle transazioni. La sessione può essere usata per iniziare, eseguire il commit o interrompere le transazioni. La sessione viene usata anche per collegare, creare o aprire un database. La sessione viene usata come contesto per tutte le operazioni DDL e DML. Per aumentare la concorrenza e l'accesso parallelo al database, è possibile iniziare più sessioni.
JET_ERR JET_API JetBeginSession(
__in JET_INSTANCE instance,
__out JET_SESID* psesid,
__in_opt JET_PCSTR szUserName,
__in_opt JET_PCSTR szPassword
);
Parametri
Istanza
Istanza del database da usare per questa chiamata.
psesid
Puntatore alla variabile che la sessione gestisce inizializza in caso di esito positivo.
szUserName
Questo parametro è riservato.
szPassword
Questo parametro è riservato.
Valore restituito
Questa funzione consente la restituzione di qualsiasi JET_ERRdefinita in questa API. Per altre informazioni sugli errori di Jet, vedere Errori del motore di archiviazione estendibili e parametri di gestione degli errori.
Codice restituito |
Descrizione |
---|---|
JET_errSuccess |
Operazione riuscita. |
JET_errClientRequestToStopJetService |
Non è possibile completare l'operazione perché tutte le attività nell'istanza associata alla sessione non sono state interrotte in seguito a una chiamata a JetStopService. |
JET_errInstanceUnavailable |
Non è possibile completare l'operazione perché l'istanza associata alla sessione ha rilevato un errore irreversibile che richiede che l'accesso a tutti i dati venga revocato per proteggere l'integrità dei dati. Questo errore verrà restituito solo da Windows XP e versioni successive. |
JET_errInvalidParameter |
Uno dei parametri forniti contiene un valore imprevisto o contiene un valore che non ha senso quando si combina con il valore di un altro parametro. |
JET_errNotInitialized |
Non è possibile completare l'operazione perché l'istanza associata alla sessione non è ancora stata inizializzata. |
JET_errOutOfMemory |
L'operazione non è riuscita perché la memoria non è stata allocata. |
JET_errOutOfSessions |
Il numero di sessioni che il motore consentirà all'avvio del client è limitato. Questo valore può essere modificato usando JetSetSystemParameter con la costante JET_paramMaxSessions. Il numero predefinito di sessioni è 16. Per informazioni dettagliate sulle JET_paramMaxSessions, vedere Parametri di sistema . |
JET_errRestoreInProgress |
Non è possibile completare l'operazione perché un'operazione di ripristino è in corso nell'istanza associata alla sessione. |
JET_errTermInProgress |
Non è possibile completare l'operazione perché l'istanza associata alla sessione viene arrestata. |
In caso di esito positivo, l'handle di sessione viene inizializzato e può essere usato per le operazioni del database.
In caso di errore, non sono disponibili sessioni o non è stato possibile inizializzare una nuova sessione.
Commenti
Attenzione attenta deve essere usata quando si usano sessioni tra thread diversi. Una sessione tiene traccia del thread usato durante JetBeginTransaction, JetCommitTransaction o JetRollback e genererà un errore se usato in più thread con una transazione aperta. JetResetSessionContext, JetSetSessionContext può modificare questo comportamento. Poiché la sessione è ancora un contesto serializzato e non è possibile eseguire più operazioni di database in una singola sessione simultaneamente, solo serialmente. È tuttavia possibile usare più sessioni per ottenere l'accesso simultaneo al database. Le sessioni possono essere usate all'interno di una transazione tra thread impostando e reimpostando i contesti della sessione.
L'handle di sessione deve essere chiuso con JetEndSession.
Requisiti
Requisito | Valore |
---|---|
Client |
Richiede Windows Vista, Windows XP o Windows 2000 Professional. |
Server |
Richiede Windows Server 2008, Windows Server 2003 o Windows 2000 Server. |
Intestazione |
Dichiarato in Esent.h. |
Libreria |
Usare ESENT.lib. |
DLL |
Richiede ESENT.dll. |
Unicode |
Implementato come JetBeginSessionW (Unicode) e JetBeginSessionA (ANSI). |
Vedere anche
JET_ERR
JET_INSTANCE
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetDupSession
JetEndSession
JetResetSessionContext
JetRollback
JetSetSessionContext
JetStopService
Parametri di sistema