JetPrereadKeys-Funktion

Gilt für: Windows | Windows Server

JetPrereadKeys-Funktion

Die JetPrereadKeys-Funktion liest Schlüsselwerte, um die Leistung der Versionsspeicherbereinigung zu verbessern.

Windows 7: PrereadKeys-Funktion wird in Windows 7 eingeführt.

    JET_ERR JET_API JetPrereadKeys(
      __in JET_SESID sesid,
      __in JET_TABLEID tableid,
      __in_ecount(ckeys) const void ** rgpvKeys,
      __in_ecount(ckeys) const unsigned long * rgcbKeys,
      __in long ckeys,
      __out_opt long * pckeysPreread,
      __in JET_GRBIT grbit
     );

Parameter

sesid

Der Datenbanksitzungskontext, der für den API-Aufruf verwendet werden soll.

tableid

Der Cursor, der für diesen Aufruf verwendet werden soll.

rgpvKeys

Ein Array von Zeigern auf Schlüssel. Schlüssel können mit JetMakeKey erstellt oder mit JetGetBookmark abgerufen werden. Die Schlüssel müssen je nach übergebenem Grbit in aufsteigender oder absteigender Reihenfolge sortiert werden. Schlüssel können mit memcmp sortiert werden.

rgcbKeys

Ein Array von Schlüssellängen. rgpvKeys[n] sollte auf einen Schlüssel der Länge rgcbKeys[n] verweisen.

ckeys

Die Anzahl der Schlüssel. rgpvKeys und rgcbKeys müssen jeweils auf ein Array mit mindestens ckeys-Elementen zeigen.

pckeysPreread

Gibt die Anzahl der Schlüssel zurück, für die Prereads tatsächlich ausgestellt wurden. Dieser Parameter kann NULL sein.

grbit

Dies muss entweder JET_bitPrereadForward oder JET_bitPrereadBackward sein. Wenn grbit JET_bitPrereadForward ist, müssen die Schlüssel in aufsteigender Reihenfolge sortiert werden. Wenn grbit JET_bitPrereadBackward ist, müssen die Schlüssel in absteigender Reihenfolge sortiert werden.

Rückgabewert

Diese Funktion gibt den Datentyp JET_ERR mit einem der folgenden Rückgabecodes zurück. Weitere Informationen zu möglichen ESE-Fehlern finden Sie unter Erweiterbare Speichermodulfehler und Fehlerbehandlungsparameter.

Verschiedene E/A-Fehler können zusammen mit den folgenden API-Verwendungsfehlern zurückgegeben werden:

Rückgabecode

Beschreibung

JET_errInvalidGrbit

Grbit war weder JET_bitPrereadForward noch JET_bitPrereadBackward.

JET_errInvalidBufferSize

Eine falsche Schlüsselgröße wurde übergeben. Schlüssel dürfen weder 0 noch länger als die maximale Schlüssellänge für die Tabelle sein.

JET_errInvalidParameter

Ein ungültiger Parameter wurde übergeben. Dies kann durch einen NULL-Wert für einen erforderlichen Parameter verursacht werden oder darauf hinweisen, dass das Schlüsselarray nicht ordnungsgemäß sortiert ist.

JetPrereadKeys durchläuft die internen Seiten der b-Struktur, um zu bestimmen, welche Blattseiten die durch rgpvKeys/rgcbKeys angegebenen Schlüssel enthalten. Die Liste der Blattseiten wird sortiert, und dann werden Vorablese für die Seitenbereiche ausgegeben. Die Anzahl der Seiten, die vorab gelesen werden können, ist begrenzt, sodass möglicherweise nicht alle Schlüssel vorab gelesen werden. In diesem Fall wird die Anzahl der tatsächlich vorgelesenen Schlüssel in pckeysPreread zurückgegeben.

Anforderungen

Anforderung Wert

Client

Erfordert Windows 7.

Server

Erfordert Windows Server 2008 R2.

Kopfzeile

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.