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: Die 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 oder mit JetGetBookmarkabgerufen werden. Die Schlüssel müssen abhängig vom übergebenen 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 ausgegeben 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 JET_ERR Datentyp mit einem der folgenden Rückgabecodes zurück. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine Errors and Error Handling Parameters.

Neben den folgenden API-Nutzungsfehlern können verschiedene E/A-Fehler 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 von rgpvKeys/rgcbKeys angegebenen Schlüssel enthalten. Die Liste der Blattseiten wird sortiert, und dann werden Prereads für die Seitenbereiche ausgegeben. Die Anzahl der Seiten, die vorab gelesen werden können, ist begrenzt, sodass es möglich ist, dass nicht alle Schlüssel vorab gelesen werden können. In diesem Fall wird die Anzahl der Schlüssel, die tatsächlich vorab gelesen werden, in pckeysPreread zurückgegeben.

Anforderungen

Anforderung Wert

Client

Erfordert Windows 7.

Server

Erfordert Windows Server 2008 R2.

Header

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.