Condividi tramite


Funzione JetGotoBookmark

Si applica a: Windows | Windows Server

Funzione JetGotoBookmark

La funzione JetGotoBookmark posiziona un cursore su una voce di indice per il record associato al segnalibro specificato. Il segnalibro può essere usato con qualsiasi indice definito su una tabella. Il segnalibro per un record può essere recuperato usando JetGetBookmark.

    JET_ERR JET_API JetGotoBookmark(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          void* pvBookmark,
      __in          unsigned long cbBookmark
    );

Parametri

sesid

Sessione da usare per questa chiamata.

tableid

Cursore da usare per questa chiamata.

pvBookmark

Buffer contenente il segnalibro da usare per posizionare il cursore.

cbBookmark

Dimensione del segnalibro nel buffer.

Valore restituito

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

Codice restituito

Descrizione

JET_errSuccess

Operazione riuscita.

JET_errClientRequestToStopJetService

L'operazione non può essere completata perché tutte le attività nell'istanza associata alla sessione hanno interrotto come risultato di una chiamata a JetStopService.

JET_errInstanceUnavailable

L'operazione non può essere completata 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.

Windows XP: Questo valore restituito è stato introdotto in Windows XP.

JET_errInvalidBookmark

Il segnalibro fornito non è valido. Ciò potrebbe verificarsi perché la dimensione del segnalibro è zero o il puntatore del buffer dei segnalibri è NULL.

JET_errNoCurrentRecord

Il cursore si trova in un indice secondario e non è possibile trovare alcuna voce di indice per il record associato al segnalibro.

JET_errNotInitialized

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

JET_errRecordDeleted

Impossibile trovare il record associato al segnalibro.

JET_errRestoreInProgress

L'operazione non può essere completata perché un'operazione di ripristino è in corso nell'istanza associata alla sessione.

JET_errSessionSharingViolation

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

Windows XP: Questo valore restituito è stato introdotto in Windows XP.

JET_errTermInProgress

Impossibile completare l'operazione perché l'istanza associata alla sessione viene arrestata.

Se questa funzione ha esito positivo, il cursore verrà posizionato in corrispondenza di una voce di indice per il record associato al segnalibro specificato. Se un record è stato preparato per l'aggiornamento, tale aggiornamento verrà annullato. Se un intervallo di indici è effettivo, tale intervallo di indici verrà annullato. Se è stata creata una chiave di ricerca per il cursore, tale chiave di ricerca verrà eliminata. Non verrà eseguita alcuna modifica allo stato del database.

Se questa funzione ha esito negativo, la posizione del cursore rimarrà invariata. Se un record è stato preparato per l'aggiornamento, tale aggiornamento verrà annullato. Se un intervallo di indici è effettivo, tale intervallo di indici verrà annullato. Se è stata creata una chiave di ricerca per il cursore, tale chiave di ricerca verrà eliminata. Non verrà eseguita alcuna modifica allo stato del database.

Commenti

Esistono due modi per usare un segnalibro per posizionare un cursore su un indice. Il primo consiste nell'usare il segnalibro per posizionare direttamente il record. Ciò si verifica quando l'indice corrente del cursore è l'indice primario. Questa tecnica funziona perché un segnalibro ESENT è uguale alla chiave primaria del record associato.

Il secondo modo per usare un segnalibro consiste nel posizionarlo in una voce in un indice secondario che corrisponde al record associato a tale segnalibro. Durante questo processo, il motore cerca il record effettivo usando il segnalibro nell'indice primario. Usa quindi i dati del record e la definizione di indice secondario per calcolare una chiave nell'indice secondario che punta al record. Posiziona quindi il cursore sulla voce di indice per tale chiave. Se il cursore è attualmente in un indice secondario su una o più colonne chiave multivalore, il cursore verrà posizionato sulla voce di indice corrispondente al primo valore multivalore di ognuna di queste colonne chiave.

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_SESID
JET_TABLEID
JetGetBookmark