Funzione JetSeek

Si applica a: Windows | Windows Server

Funzione JetSeek

La funzione JetSeek posiziona in modo efficiente un cursore in una voce di indice che corrisponde ai criteri di ricerca specificati dalla chiave di ricerca in tale cursore e alla disuguaglianza specificata. Una chiave di ricerca deve essere stata creata in precedenza usando JetMakeKey.

    JET_ERR JET_API JetSeek(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          JET_GRBIT grbit
    );

Parametri

sesid

Sessione da utilizzare per questa chiamata.

tableid

Cursore da utilizzare per questa chiamata.

grbit

Gruppo di bit che contengono le opzioni da utilizzare per questa chiamata. Grbit deve essere diverso da zero e deve includere uno o più valori elencati nella tabella seguente.

Valore

Significato

JET_bitCheckUniqueness

Un codice di errore speciale, JET_wrnUniqueKey, verrà restituito se può essere determinato a buon mercato che esiste esattamente una voce di indice corrispondente alla chiave di ricerca.

Questa opzione viene ignorata, a meno che non venga specificata anche JET_bitSeekEQ.

Questa opzione è disponibile solo in Windows Server 2003 e versioni successive.

JET_bitSeekEQ

Il cursore verrà posizionato in corrispondenza della voce di indice più vicina all'inizio dell'indice che corrisponde esattamente alla chiave di ricerca. L'inizio dell'indice è la voce di indice trovata quando si passa al primo record in tale indice. L'inizio dell'indice non corrisponde all'estremità inferiore dell'indice, che può cambiare a seconda dell'ordinamento delle colonne chiave nell'indice.

Non è significativo usare questa opzione con una chiave di ricerca costruita con JetMakeKey usando un'opzione con caratteri jolly.

JET_bitSeekGE

Il cursore verrà posizionato in corrispondenza della voce di indice più vicina all'inizio dell'indice maggiore o uguale a una voce di indice che corrisponde esattamente ai criteri di ricerca. L'inizio dell'indice è la voce di indice trovata quando si passa al primo record in tale indice. L'inizio dell'indice non corrisponde all'estremità inferiore dell'indice, che può cambiare a seconda dell'ordinamento delle colonne chiave nell'indice.

Non è significativo usare questa opzione con una chiave di ricerca costruita usando JetMakeKey usando un'opzione con caratteri jolly destinata a trovare le voci di indice più vicine alla fine dell'indice.

JET_bitSeekGT

Il cursore verrà posizionato in corrispondenza della voce di indice più vicina all'inizio dell'indice maggiore di una voce di indice che corrisponde esattamente ai criteri di ricerca. L'inizio dell'indice è la voce di indice trovata quando si passa al primo record in tale indice. L'inizio dell'indice non corrisponde all'estremità inferiore dell'indice, che può cambiare a seconda dell'ordinamento delle colonne chiave nell'indice.

Non è significativo usare questa opzione con una chiave di ricerca costruita con JetMakeKey usando un'opzione con caratteri jolly destinata a trovare le voci di indice più vicine all'inizio dell'indice.

JET_bitSeekLE

Il cursore verrà posizionato in corrispondenza della voce di indice più vicina alla fine dell'indice minore o uguale a una voce di indice che corrisponde esattamente ai criteri di ricerca. La fine dell'indice è la voce di indice trovata quando si passa all'ultimo record in tale indice. La fine dell'indice non corrisponde all'estremità superiore dell'indice, che può cambiare a seconda dell'ordinamento delle colonne chiave nell'indice.

Non è significativo usare questa opzione con una chiave di ricerca costruita con JetMakeKey usando un'opzione con caratteri jolly destinata a trovare le voci di indice più vicine all'inizio dell'indice.

JET_bitSeekLT

Il cursore verrà posizionato in corrispondenza della voce di indice più vicina alla fine dell'indice minore di una voce di indice che corrisponde esattamente ai criteri di ricerca. La fine dell'indice è la voce di indice trovata quando si passa all'ultimo record in tale indice. La fine dell'indice non corrisponde all'estremità superiore dell'indice, che può cambiare a seconda dell'ordinamento delle colonne chiave nell'indice.

Non è significativo usare questa opzione con una chiave di ricerca costruita usando JetMakeKey usando un'opzione con caratteri jolly destinata a trovare le voci di indice più vicine alla fine dell'indice.

JET_bitSetIndexRange

Un intervallo di indici verrà configurato automaticamente per tutte le chiavi che corrispondono esattamente alla chiave di ricerca. L'intervallo di indici risultante è identico a quello che altrimenti sarebbe stato creato da una chiamata a JetSetIndexRange con le opzioni JET_bitRangeInclusive e JET_bitRangeUpperLimit. Per altre informazioni, vedere JetSetIndexRange .

Si tratta di un metodo pratico per individuare tutte le voci di indice che corrispondono agli stessi criteri di ricerca.

Questa opzione viene ignorata, a meno che non venga specificata anche JET_bitSeekEQ.

Valore restituito

Questa funzione consente la restituzione di qualsiasi JET_ERRs definita in questa API. Per altre informazioni sugli errori Jet, vedere Errori del motore di archiviazione estendibile e parametri di gestione degli errori.

Codice restituito

Descrizione

JET_errSuccess

Operazione riuscita.

Per JetSeek, ciò significa che è stata rilevata una voce di indice che corrisponde esattamente ai criteri di ricerca.

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_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_errKeyNotMade

Non esiste una chiave di ricerca corrente per il cursore. JetSeek richiede che il cursore abbia una chiave di ricerca valida perché verrà usata per i criteri di ricerca usati per trovare le voci di indice.

JET_errNotInitialized

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

JET_errRecordNotFound

Non è stata trovata alcuna voce di indice corrispondente ai criteri di ricerca.

JET_errRestoreInProgress

Non è possibile completare l'operazione perché è in corso un'operazione di ripristino nell'istanza associata alla sessione.

JET_wrnSeekNotEqual

È stata trovata una voce di indice corrispondente ai criteri di ricerca. Tuttavia, tale voce di indice non corrisponde esattamente.

JET_errSessionSharingViolation

La stessa sessione non può essere usata contemporaneamente per più thread.

Questo errore verrà restituito solo da Windows XP e versioni successive.

JET_errTermInProgress

Non è possibile completare l'operazione perché l'istanza associata alla sessione viene arrestata.

JET_wrnUniqueKey

È stata rilevata esattamente una voce di indice che corrisponde esattamente ai criteri di ricerca. Questo errore verrà restituito solo se è stato specificato JET_bitSeekCheckUniqueness ed è stato conveniente determinare che la voce di indice corrispondente è l'unica voce di indice che corrisponde esattamente ai criteri di ricerca.

Questo errore verrà restituito solo da Windows Server 2003 e versioni successive.

In caso di esito positivo, il cursore verrà posizionato in corrispondenza di una voce di indice corrispondente ai criteri di ricerca. Se un record è stato preparato per l'aggiornamento, l'aggiornamento verrà annullato. Se è attivo un intervallo di indici, l'intervallo di indici verrà annullato. Se è stata creata una chiave di ricerca per il cursore, la chiave di ricerca verrà eliminata. Non verrà apportata alcuna modifica allo stato del database. Quando più voci di indice hanno lo stesso valore, la voce più vicina all'inizio dell'indice viene sempre selezionata.

In caso di errore, la posizione del cursore rimarrà invariata a meno che non venga restituito JET_errRecordNotFound. In tal caso, il cursore verrà posizionato in cui la voce di indice corrispondente ai criteri di ricerca specificati dalla chiave di ricerca in tale cursore e la disuguaglianza specificata sarebbe stata. Il cursore può essere spostato rispetto a tale posizione, ma non è ancora in una voce di indice valida. Se un record è stato preparato per l'aggiornamento, l'aggiornamento verrà annullato. Se è attivo un intervallo di indici, l'intervallo di indici verrà annullato. Se è stata creata una chiave di ricerca per il cursore, la chiave di ricerca verrà eliminata. Non verrà apportata alcuna modifica allo stato del database.

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.

Vedere anche

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetMakeKey
JetSetIndexRange
JetStopService