Share via


JET_OPENTEMPORARYTABLE-Struktur

Gilt für: Windows | Windows Server

JET_OPENTEMPORARYTABLE-Struktur

Die JET_OPENTEMPORARYTABLE-Struktur enthält eine leicht erweiterbare Auflistung von Parametern für die JET_OPENTEMPORARYTABLE-Funktion . Diese Struktur ist das temporäre Tabellenäquivalent der JET_TABLECREATE-Struktur .

Windows Vista: Die JET_OPENTEMPORARYTABLE-Struktur wird in Windows Vista eingeführt.

    typedef struct tagJET_OPENTEMPORARYTABLE {
      unsigned long cbStruct;
      const JET_COLUMNDEF* prgcolumndef;
      unsigned long ccolumn;
      JET_UNICODEINDEX* pidxunicode;
      JET_GRBIT grbit;
      JET_COLUMNID* prgcolumnid;
      unsigned long cbKeyMost;
      unsigned long cbVarSegMac;
      JET_TABLEID tableid;
    } JET_OPENTEMPORARYTABLE;

Member

cbStruct

Die Größe dieser Struktur in Bytes (für zukünftige Erweiterungen). Es muss auf sizeof( JET_TABLECREATE ) in Bytes festgelegt werden.

prgcolumndef

Spaltendefinitionen für die Spalten, die in der temporären Tabelle erstellt wurden.

Es bestehen wichtige Einschränkungen für die Spaltendefinitionsoptionen, die mit einer temporären Tabelle verwendet werden. Weitere Informationen finden Sie im Abschnitt Hinweise.

Zusätzlich zu den üblichen Spaltendefinitionsoptionen können auch null oder mehr der folgenden Optionen angegeben werden, die nur im Kontext einer temporären Tabelle relevant sind.

Wert

Bedeutung

JET_bitColumnTTDescending

Die Sortierreihenfolge der Schlüsselspalte für die temporäre Tabelle sollte absteigend und nicht aufsteigend sein. Wenn diese Option ohne JET_bitColumnTTKey angegeben wird, wird diese Option ignoriert.

JET_bitColumnTTKey

Die Spalte ist eine Schlüsselspalte für die temporäre Tabelle.

Die Reihenfolge der Spaltendefinitionen mit dieser Option, die im Eingabearray angegeben ist, bestimmt die Rangfolge jeder Schlüsselspalte für die temporäre Tabelle. Die erste Spaltendefinition im Array, für das diese Option festgelegt ist, ist die wichtigste Schlüsselspalte usw. Wenn mehr Schlüsselspalten angefordert werden, als von der Datenbank-Engine unterstützt werden können, wird diese Option für die nicht unterstützten Schlüsselspalten ignoriert.

ccolumn

Siehe prgcolumndef.

pidxunicode

Die Gebietsschema-ID und die Normalisierungsflags, die zum Vergleichen beliebiger Unicode-Schlüsselspaltendaten in der temporären Tabelle verwendet werden sollen.

Wenn dieser Parameter nicht vorhanden ist und der lcid-Parameter nicht vorhanden ist, wird die Standard-LCID verwendet, um alle Unicode-Schlüsselspalten in der temporären Tabelle zu vergleichen. Die Standard-LCID ist das us-englische Gebietsschema.

Wenn dieser Parameter nicht vorhanden ist, werden die Standardnormalisierungsflags verwendet, um alle Unicode-Schlüsselspaltendaten in der temporären Tabelle zu vergleichen. Die Standardnormalisierungsflags sind: NORM_IGNORECASE, NORM_IGNOREKANATYPE und NORM_IGNOREWIDTH.

grbit

Eine Gruppe von Bits, die null oder mehr der folgenden Optionen angibt.

Wert

Bedeutung

JET_bitTTIndexed

Diese Option fordert an, dass die temporäre Tabelle flexibel genug ist, um die Verwendung von JetSeek zum Suchen von Datensätzen nach Indexschlüsseln zu ermöglichen.

Wenn diese Funktionalität nicht erforderlich ist, ist es am besten, sie nicht anzufordern. Wenn diese Funktionalität nicht angefordert wird, kann der Manager für temporäre Tabellen möglicherweise eine Strategie für die Verwaltung der temporären Tabelle auswählen, die zu einer verbesserten Leistung führt.

JET_bitTTUnique

Anforderungen, dass Datensätze mit doppelten Indexschlüsseln aus dem endgültigen Datensatzsatz in der temporären Tabelle entfernt werden.

Vor Windows Server 2003 ging die Datenbank-Engine immer davon aus, dass diese Option wirksam ist, da alle gruppierten Indizes ebenfalls ein Primärschlüssel und somit eindeutig sein müssen. Ab Windows Server 2003 ist es jetzt möglich, eine temporäre Tabelle zu erstellen, die keine Duplikate entfernt, wenn auch die Option JET_bitTTForwardOnly angegeben ist.

Es ist nicht möglich zu wissen, welche Duplikate erfolgreich sind und welche Duplikate im Allgemeinen verworfen werden. Wenn jedoch die Option JET_bitTTErrorOnDuplicateInsertion angefordert wird, ist der erste Datensatz mit einem bestimmten Indexschlüssel, der in die temporäre Tabelle eingefügt werden soll, immer erfolgreich.

JET_bitTTUpdatable

Fordert an, dass die temporäre Tabelle flexibel genug ist, damit datensätze, die zuvor eingefügt wurden, nachträglich geändert werden können. Wenn diese Funktionalität nicht erforderlich ist, ist es am besten, sie nicht anzufordern.

Wenn diese Funktionalität nicht angefordert wird, kann der Manager für temporäre Tabellen möglicherweise eine Strategie für die Verwaltung der temporären Tabelle auswählen, die zu einer verbesserten Leistung führt.

JET_bitTTScrollable

Fordert an, dass die temporäre Tabelle flexibel genug ist, um das Scannen von Datensätzen in beliebiger Reihenfolge und Richtung mithilfe von JetMove zu ermöglichen.

Wenn diese Funktionalität nicht erforderlich ist, ist es am besten, sie nicht anzufordern. Wenn diese Funktionalität nicht angefordert wird, kann der Manager für temporäre Tabellen möglicherweise eine Strategie für die Verwaltung der temporären Tabelle auswählen, die zu einer verbesserten Leistung führt.

JET_bitTTSortNullsHigh

Fordert an, dass NULL-Schlüsselspaltenwerte näher am Ende des Indexes sortiert werden als Werte für Schlüsselspalten, die nicht NULL sind.

JET_bitTTForceMaterialization

Erzwingt den temporären Tabellen-Manager, die Suche nach der besten Strategie für die Verwaltung der temporären Tabelle aufzugeben, was zu einer verbesserten Leistung führt.

JET_bitTTErrorOnDuplicateInsertion

Jeder Versuch, einen Datensatz mit demselben Indexschlüssel wie ein zuvor eingefügter Datensatz einzufügen, schlägt sofort mit JET_errKeyDuplicate fehl. Wenn diese Option nicht angefordert wird, wird sofort ein Duplikat erkannt, das fehlschlägt oder später automatisch entfernt wird, je nachdem, welche Strategie die Datenbank-Engine für die Implementierung der temporären Tabelle gewählt hat, basierend auf der angeforderten Funktionalität.

Wenn diese Funktionalität nicht erforderlich ist, ist es am besten, sie nicht anzufordern. Wenn diese Funktionalität nicht angefordert wird, kann der Manager für temporäre Tabellen möglicherweise eine Strategie für die Verwaltung der temporären Tabelle auswählen, die zu einer verbesserten Leistung führt.

JET_bitTTForwardOnly

Die temporäre Tabelle wird nur erstellt, wenn der temporäre Tabellen-Manager die Implementierung verwenden kann, die für Zwischenabfrageergebnisse optimiert ist. Wenn ein Merkmal der temporären Tabelle die Verwendung dieser Optimierung verhindern würde, schlägt der Vorgang mit JET_errCannotMaterializeForwardOnlySort fehl.

Eine Nebenwirkung dieser Option besteht darin, dass die temporäre Tabelle Datensätze mit doppelten Indexschlüsseln enthält. Weitere Informationen finden Sie unter JET_bitTTUnique.

Windows Server 2003: Diese Option ist nur unter Windows Server 2003 und höheren Versionen verfügbar.

prgcolumnid

Der Ausgabepuffer, der das Array von Spalten-IDs empfängt, die während der Erstellung der temporären Tabelle generiert wurden.

Die Spalten-IDs in diesem Array entsprechen genau dem Eingabearray von Spaltendefinitionen. Daher muss die Größe dieses Puffers der Größe des Eingabearrays entsprechen.

cbKeyMost

Die maximale Größe für einen Schlüssel, der eine angegebene Zeile darstellt.

Die maximale Schlüsselgröße kann festgelegt werden, um zu steuern, wie Schlüssel abgeschnitten werden. Das Abschneiden von Schlüsseln ist wichtig, da sie sich darauf auswirken kann, wenn Zeilen als eindeutig betrachtet werden.

Wenn dieser Parameter auf 0 oder JET_cbKeyMostMin (255) festgelegt ist, bleiben die maximale Schlüsselgröße und seine Semantik mit der maximalen Schlüsselgröße identisch, die von Windows Server 2003 und früheren Versionen unterstützt wird. Dieser Parameter kann auch in Abhängigkeit von der Seitengröße der Datenbank für die instance (JET_paramDatabasePageSize) auf einen größeren Wert festgelegt werden. Weitere Informationen finden Sie unter JET_paramKeyMost.

cbVarSegMac

Die maximale Datenmenge, die aus einer Spalte mit variabler Länge verwendet wird, um einen Schlüssel für eine bestimmte Zeile zu erstellen.

Dieser Parameter kann verwendet werden, um den von einer bestimmten Schlüsselspalte belegten Schlüsselspeicherplatz zu steuern. Dieser Grenzwert ist in Bytes angegeben. Wenn dieser Parameter null ist oder mit dem cbKeyMost-Parameter identisch ist, ist kein Grenzwert in Kraft.

tableid

Das Tabellenhandle für die temporäre Tabelle, die als Ergebnis eines erfolgreichen Aufrufs von JetOpenTemporaryTable erstellt wurde.

Anforderungen

Anforderung Wert

Client

Erfordert Windows Vista.

Server

Erfordert Windows Server 2008.

Kopfzeile

Deklariert in Esent.h.

Weitere Informationen

JET_TABLECREATE
JET_COLUMNDEF
JET_UNICODEINDEX
JET_GRBIT
JET_COLUMNID
JET_TABLEID
JetOpenTemporaryTable
Erweiterbare Systemparameter der Speicher-Engine