JetRetrieveKey-Funktion

Letzte Änderung: Freitag, 27. Februar 2015

Gilt für: Windows | Windows Server

JetRetrieveKey-Funktion

Die Funktion JetRetrieveKey Ruft den Schlüssel für die Indexeintrag an der aktuellen Position eines Cursors ab. Diese Schlüssel werden durch Aufrufe von JetMakeKeyerstellt. Der abgerufene Schlüssel kann dann effizient zurückzugebenden diesem Cursor mit dem gleichen Indexeintrag verwendet werden, durch einen Aufruf von wurde.

JET_ERR JET_API JetRetrieveKey(
  __in          JET_SESID sesid,
  __in          JET_TABLEID tableid,
  __out_opt     void* pvData,
  __in          unsigned long cbMax,
  __out_opt     unsigned long* pcbActual,
  __in          JET_GRBIT grbit
);

Parameter

sesid

Die Sitzung für diesen Aufruf verwenden.

TableID

Der Mauszeiger für dieses Anrufs verwenden.

pvData

Den Ausgabepuffer, der den Schlüssel entgegennimmt.

cbMax

Die maximale Größe in Bytes den Ausgabepuffer.

pcbActual

Empfängt die tatsächliche Größe des Schlüssels in Bytes.

Wenn dieser Parameter NULL ist, und klicken Sie dann die tatsächliche Größe des Schlüssels nicht zurückgegeben wird.

Wenn der Ausgabepuffer zu klein ist, wird die tatsächliche Größe des Schlüssels weiterhin zurückgegeben. Dies bedeutet, dass diese Zahl größer als die Größe des Puffers ausgegeben werden.

JET_errInvalidGrbit

Eine Gruppe von Bits an, die die Optionen für dieses Anrufs zu verwendende enthalten, die NULL oder mehrere der folgenden Optionen enthalten.

Wert

Bedeutung

JET_bitRetrieveCopy

Wenn angegeben, wird das Modul den Suche-Schlüssel für den Cursor zurück. Die suchen-Taste wird eine oder mehrere vorausgehende Aufrufe von JetMakeKey für die Zwecke zu dieser Schlüssel mit wurde oder Festlegen eines Index-Bereichen mithilfe von JetSetIndexRangeSuchvorgänge mit aufgebaut.

Return Value

Diese Funktion gibt den Datentyp JET_ERR mit einem der folgenden Rückgabecodes. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine-Fehlern und Fehler behandeln von Parametern.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errClientRequestToStopJetService

Es ist nicht möglich, den Vorgang abzuschließen, da alle Aktivitäten auf die Instanz der Sitzung zugeordnet aufgrund eines Aufrufs von JetStopServicebehoben ist.

JET_errInstanceUnavailable

Es ist nicht möglich, den Vorgang abzuschließen, da die Instanz der Sitzung zugeordnet ein schwerwiegender Fehler, der erforderlich sind aufgetreten wurde, dass der Zugriff auf alle Daten gesperrt werden, um die Integrität der Daten zu schützen. Dieser Fehler wird nur von Windows XP und spätere Versionen zurückgegeben werden.

JET_errKeyNotMade

Es ist kein aktuelle Suche-Schlüssel für den Cursor. Für JetRetrieveKey geschieht, wenn JET_bitRetrieveCopy angegeben ist und ein Schlüssel für die Suche ist nicht für diesen Cursor mit einem vorherigen Aufruf von JetMakeKeyerstellt wurden. Die suchen-Taste wird durch einen vorherigen Aufruf einer beliebigen Navigations-API für den Cursor als JetMovegelöscht werden.

JET_errNoCurrentRecord

Der Cursor befindet sich nicht auf einen Datensatz. Dies kann vielen verschiedenen Gründen auftreten. Beispielsweise dies geschieht, wenn der Cursor derzeit nach dem letzten Datensatz auf dem aktuellen Index befindet.

JET_errNotInitialized

Es ist nicht möglich, den Vorgang abzuschließen, da die Instanz der Sitzung zugeordnet wurde noch nicht initialisiert.

JET_errRestoreInProgress

Es ist nicht möglich, den Vorgang abzuschließen, da ein Restore-Vorgang in Arbeit auf die Instanz der Sitzung zugeordnet ist.

JET_errSessionSharingViolation

Die gleiche Sitzung kann nicht für mehrere Threads gleichzeitig verwendet werden. Dieser Fehler wird nur von Windows XP und spätere Versionen zurückgegeben werden.

JET_errTermInProgress

Es ist nicht möglich, den Vorgang abzuschließen, da die Instanz der Sitzung zugeordnet heruntergefahren wird.

JET_wrnBufferTruncated

Der Vorgang erfolgreich abgeschlossen wurde, aber den Ausgabepuffer ist zu klein für den gesamten Key erhalten haben. Der Ausgabepuffer wurde mit viel des Schlüssels passen würde gefüllt. Die tatsächliche Größe des Schlüssels wurde auch zurückgegeben, wenn angefordert.

Hinweis   Dieser Fehler wird nicht zurückgegeben werden, wenn JET_bitRetrieveCopy angegeben ist. Finden Sie im Abschnitt "Hinweise" Weitere Informationen.

Bei Erfolg wird der Schlüssel für den Indexeintrag an der aktuellen Position des Cursors in den Ausgabepuffer zurückgegeben werden. JET_wrnBufferTruncated zurückgegeben wird der Ausgabepuffer enthalten, wie viel des Schlüssels in das Eingabefeld und die tatsächliche Größe des Schlüssels passt exakt sein wird. Keine Änderung an den Zustand der Datenbank erfolgt.

Bei einem Fehler werden der Status der Ausgabepuffer und der tatsächlichen Größe des Schlüssels nicht definiert sein. Keine Änderung an den Zustand der Datenbank erfolgt.

Anmerkungen

Schlüssel sollten in der Regel als undurchsichtiger Datenblöcke behandelt werden. Nicht versucht sollte die interne Struktur dieser Daten zu nutzen. Die folgenden Eigenschaften können jedoch über alle ESENT Schlüssel bekannt sein:

  • Verwenden von Memcmp -Funktion zum Einrichten ihrer relative Reihenfolge in den ursprünglichen Index über die Tabelle, der die Quelle Indexeinträge gegeneinander möglicherweise Schlüssel verglichen werden.

  • Es ist keine Bedeutung Schlüssel der Indexeinträge aus verschiedenen Indizes miteinander verglichen.

  • Ein Schlüssel ist immer kleiner oder gleich JET_cbKeyMost (255) Bytes Länge vor Windows Vista. Unter Windows Vista und spätere Versionen können Schlüssel größer sein. Die maximale Größe eines Schlüssels ist der aktuelle Wert des JET_paramKeyMost gleich.

Zusätzlich zu den oben genannten Eigenschaften der ESENT Schlüssel ist es im Allgemeinen wichtig Beachten Sie, dass ein Suche Schlüssel aus dem Schlüssel für einen Indexeintrag unterscheidet. Insbesondere möglicherweise ein Schlüssel für die Suche mehr als ein gewöhnliche-Taste. Diese zusätzliche Länge tritt auf, wenn eine Platzhalter-Option beim Erstellen des Schlüssels für die Suche verwendet wird. Weitere Informationen finden Sie unter JetMakeKey .

Es gibt ein wichtiger Fehler in diese API, die in allen Versionen vorhanden ist. Verwenden die Verwendung von JET_bitRetrieveCopy die suchen-Taste angefordert, und der Ausgabepuffer ist zu klein, um den gesamten Schlüssel empfangen werden JET_wrnBufferTruncated nicht zurückgegeben. JET_errSuccess werden stattdessen zurückgegeben. Es ist wichtig, stellen Sie sicher, dass die tatsächliche Größe des Schlüssels mit PcbActual zurückgegeben, die kleiner oder gleich der Größe des Ausgabepuffers ist. Ist die tatsächliche Größe größer als die Größe des Ausgabepuffers, sollte der Aufrufer JetRetrieveKey reagieren, als wäre JET_wrnBufferTruncated stattdessen zurückgegeben wurden.

Voraussetzungen

-Client,

Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.

Server

WindowsServer 2008, WindowsServer 2003 oder Windows 2000 Server benötigt.

Kopfzeile

In Esent.h deklariert.

Library

Verwenden Sie ESENT.lib.

DLL

Erfordert "ESENT.dll".

Siehe auch

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetMakeKey
wurde
JetSetIndexRange