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. |