Funzione JetGotoSecondaryIndexBookmark

Si applica a: Windows | Windows Server

Funzione JetGotoSecondaryIndexBookmark

La funzione JetGotoSecondaryIndexBookmark posiziona un cursore a una voce di indice associata al segnalibro di indice secondario specificato. Il segnalibro di indice secondario deve essere usato con lo stesso indice sulla stessa tabella da cui è stato originariamente recuperato. Il segnalibro di indice secondario per una voce di indice può essere recuperato usando JetGotoSecondaryIndexBookmark.

Windows XP:JetGotoSecondaryIndexBookmark è stato introdotto in Windows XP.

    JET_ERR JET_API JetGotoSecondaryIndexBookmark(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          void* pvSecondaryKey,
      __in          unsigned long cbSecondaryKey,
      __in_opt      void* pvPrimaryBookmark,
      __in          unsigned long cbPrimaryBookmark,
      __in          const JET_GRBIT grbit
    );

Parametri

sesid

Sessione da usare per questa chiamata.

tableid

Cursore da usare per questa chiamata.

pvSecondaryKey

Buffer contenente la chiave secondaria da usare per posizionare il cursore.

cbSecondaryKey

Dimensioni della chiave secondaria nel buffer.

pvPrimaryBookmark

Buffer che contiene il segnalibro della chiave primaria da usare per posizionare il cursore.

cbPrimaryBookmark

Dimensioni del segnalibro della chiave primaria nel buffer.

grbit

Gruppo di bit che specifica zero o più delle opzioni seguenti.

Valore

Significato

JET_bitBookmarkPermitVirtualCurrency

Nel caso in cui non sia più possibile trovare la voce di indice, il cursore verrà posizionato a sinistra in cui è stata trovata in precedenza tale voce di indice. L'operazione avrà ancora esito negativo con JET_errRecordDeleted; tuttavia, sarà possibile passare alla voce di indice successiva o precedente rispetto alla voce di indice mancante.

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 viene introdotto in Windows XP.

JET_errInvalidBookmark

Il segnalibro di indice secondario specificato non è valido. Questo errore potrebbe verificarsi perché la chiave secondaria è zero o il puntatore del buffer della chiave secondaria è NULL. Questo errore si verifica perché

  • L'indice secondario corrente non ha un vincolo di univocità e le dimensioni del segnalibro specificato sono zero.

  • Il puntatore del buffer dei segnalibri è NULL.

JET_errNoCurrentIndex

Il cursore non è attualmente in un indice secondario. Non è significativo passare a un segnalibro di indice secondario quando il cursore non usa attualmente un indice secondario. JetGotoBookmark deve essere usato quando il cursore non è in un indice secondario.

JET_errNotInitialized

L'operazione non può essere completata perché l'istanza associata alla sessione non è ancora stata inizializzata.

JET_errRecordDeleted

Impossibile trovare la voce di indice associata al segnalibro di indice secondario.

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 viene introdotto in Windows XP.

JET_errTermInProgress

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

Se questa funzione riesce, il cursore verrà posizionato in corrispondenza di una voce di indice associata al segnalibro di indice secondario 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 l'uso del 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 rimane invariata a meno che non venga restituita JET_errRecordDeleted e JET_bitBookmarkPermitVirtualCurrency sia specificata. In tal caso, il cursore verrà posizionato in cui la voce di indice associata al segnalibro di indice secondario specificato 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, tale aggiornamento verrà annullato. Se un intervallo di indici è effettivo, tale intervallo di indici verrà annullato. Se è stata creata una chiave di ricerca per l'uso del cursore, tale chiave di ricerca verrà eliminata. In qualsiasi caso, non verrà eseguita alcuna modifica allo stato del database.

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_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetGetSecondaryIndexBookmark
JetGotoBookmark
JetStopService