Condividi tramite


Funzione JetSetLS

Si applica a: Windows | Windows Server

Funzione JetSetLS

La funzione JetSetLS consente all'applicazione di associare un handle di contesto noto come Archiviazione locale a un cursore o alla tabella associata a tale cursore. Questo handle di contesto può essere usato dall'applicazione per archiviare i dati ausiliari associati a un cursore o a una tabella. L'applicazione riceve successivamente una notifica tramite un callback di runtime quando è necessario rilasciare l'handle di contesto. In questo modo è possibile associare lo stato allocato dinamicamente a un cursore o a una tabella.

Windows XP:JetSetLS è stato introdotto in Windows XP.

    JET_ERR JET_API JetSetLS(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          JET_LS ls,
      __in          JET_GRBIT grbit
    );

Parametri

sesid

Sessione da utilizzare per questa chiamata.

tableid

Cursore da utilizzare per questa chiamata.

ls

Handle di contesto da associare al cursore o alla tabella.

Quando si specifica JET_bitLSReset, il valore effettivo di questo parametro viene ignorato e viene usato JET_LSNil.

grbit

Gruppo di bit che contengono le opzioni da usare per questa chiamata, che includono zero o più dei seguenti elementi.

Valore

Significato

JET_bitLSCursor

Questa opzione indica che l'handle di contesto deve essere associato al cursore specificato.

Se non viene specificato né JET_bitLSCursor né JET_bitLSTable, JET_bitLSCursor viene presunto.

È illegale usare questa opzione con JET_bitLSTable. L'operazione avrà esito negativo con JET_errInvalidgrbit se si tenta di eseguire questa operazione.

JET_bitLSReset

Questa opzione indica che l'handle di contesto specificato deve essere ignorato e che l'handle di contesto per l'oggetto scelto deve essere reimpostato su JET_LSNil.

È importante notare che questa azione non comporterà un callback per pulire il valore precedente dell'handle di contesto per l'oggetto scelto. È possibile ottenere una pulizia corretta dell'handle di contesto precedente usando JetGetLS con JET_bitLSReset. Per altre informazioni, vedere JetGetLS .

JET_bitLSTable

Questa opzione indica che l'handle di contesto deve essere associato alla tabella associata al cursore specificato.

È illegale usare questa opzione con JET_bitLSCursor. L'operazione avrà esito negativo con JET_errInvalidgrbit se si tenta di eseguire questa operazione.

Valore restituito

Questa funzione restituisce il tipo di dati JET_ERR con uno dei codici restituiti seguenti. Per altre informazioni sui possibili errori ESE, vedere Errori del motore di archiviazione estendibile e parametri di gestione degli errori.

Codice restituito

Descrizione

JET_errSuccess

Operazione riuscita.

JET_errClientRequestToStopJetService

Non è possibile completare l'operazione perché tutte le attività sull'istanza associata alla sessione sono cessate a seguito di una chiamata a JetStopService.

JET_errInvalidgrbit

Una delle opzioni richieste non è valida, utilizzata in modo non corretto o non implementata. Questa situazione può verificarsi per JetSetLS quando vengono specificati JET_bitLSCursor e JET_bitLSTable.

JET_errInstanceUnavailable

Non è possibile completare l'operazione perché l'istanza associata alla sessione ha rilevato un errore irreversibile che richiede la revoca dell'accesso a tutti i dati per proteggere l'integrità dei dati. Questo errore verrà restituito solo da Windows XP e versioni successive.

JET_errLSAlreadySet

L'handle di contesto specificato non può essere associato all'oggetto richiesto perché dispone già di un handle di contesto associato.

JET_errLSCallbackNotSpecified

Impossibile associare l'handle di contesto specificato all'oggetto richiesto perché il callback di runtime non è stato configurato per l'istanza associata alla sessione.

JET_errNotInitialized

Non è possibile completare l'operazione perché l'istanza associata alla sessione non è ancora stata inizializzata.

JET_errRestoreInProgress

Non è possibile completare l'operazione perché è in corso un'operazione di ripristino 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 contesto specificato è stato associato correttamente all'oggetto richiesto. Non verrà apportata alcuna modifica allo stato del database.

In caso di errore, non è stata apportata alcuna modifica allo stato dell'oggetto richiesto. Non verrà apportata alcuna modifica allo stato del database.

Commenti

L'archiviazione locale per un cursore o una tabella deve essere visualizzata come cache volatile. L'applicazione deve prima provare a recuperare l'handle di contesto usando JetGetLS. Se il valore non è impostato (ovvero è JET_LSNil), l'applicazione deve creare un nuovo contesto e caricarlo nella cache usando JetSetLS. L'applicazione può eliminare la cache usando una chiamata a JetGetLS con JET_bitLSReset. Se il motore di database elimina la cache, verrà generato un callback di runtime per consentire all'applicazione di pulire il contesto. Il tipo di callback verrà JET_cbtypFreeCursorLS per un handle di contesto associato a un cursore e JET_cbtypFreeTableLS per un handle di contesto associato a una tabella. In entrambi i casi, l'handle di contesto verrà passato come pvArg1. Per altre informazioni, vedere JET_CALLBACK .

Il callback di runtime deve essere configurato correttamente per l'istanza associata alla sessione specificata prima di poter usare l'archiviazione locale. Questo callback può essere impostato usando JetSetSystemParameter con JET_paramRuntimeCallback. Per altre informazioni, vedere JetSetSystemParameter e JET_paramRuntimeCallback in Parametri di sistema.

Requisiti

Requisito Valore

Client

Richiede Windows Vista o Windows XP.

Server

Richiede Windows Server 2008 o Windows Server 2003.

Intestazione

Dichiarato in Esent.h.

Libreria

Usare ESENT.lib.

DLL

Richiede ESENT.dll.

Vedere anche

JET_CALLBACK
JET_ERR
JET_GRBIT
JET_LS
JET_SESID
JET_TABLEID
JetGetLS
JetSetSystemParameter
Parametri di sistema