Freigeben über


JetOpenTempTable2-Funktion

Letzte Änderung: Freitag, 27. Februar 2015

Gilt für: Windows | Windows Server

JetOpenTempTable2-Funktion

Die JetOpenTempTable2 -Funktion erstellt eine temporäre Tabelle mit einem einzigen Index, der zum Speichern und Abrufen von Datensätzen wie eine gewöhnliche Tabelle mit JetCreateTableColumnIndexerstellt. Diese Funktion hat auch eine Gebietsschema-ID, die zum Vergleichen der Schlüsselspalte Unicode-Daten in der temporären Tabelle verwendet werden kann. Temporäre Tabellen sind jedoch viel schneller als die normale Tabellen durch ihre flüchtiger Natur. Sie können auch verwendet werden, sehr schnell sortieren und führen Sie zum Entfernen von Duplikaten auf Datensätze ausschließlich sequenziell zugegriffen.

JET_ERR JET_API JetOpenTempTable2(
  __in          JET_SESID sesid,
  __in          const JET_COLUMNDEF* prgcolumndef,
  __in          unsigned long ccolumn,
  __in          unsigned long lcid,
  __in          JET_GRBIT grbit,
  __out         JET_TABLEID* ptableid,
  __out         JET_COLUMNID* prgcolumnid
);

Parameter

sesid

Die Sitzung für die Verwendung.

prgcolumndef

Die Definitionen der Spalten in der temporären Tabelle erstellt werden.

Wichtige Einschränkungen für die Definition Spaltenoptionen vorhanden sind, die eine temporäre Tabelle verwendet werden. Finden Sie im Abschnitt Weitere Informationen.

Zusätzlich zu den üblichen Definition Spaltenoptionen kann 0 (null) oder mehr der folgenden Optionen auch angegeben werden, die nur im Kontext einer temporären Tabelle relevant sind.

Wert

Bedeutung

JET_bitColumnTTDescending

Die Sortierreihenfolge der Spalte für den Schlüssel für die temporäre Tabelle sollten absteigend aufsteigend, anstatt sein. Wenn diese Option ohne JET_bitColumnTTKey angegeben wird, wird diese Option ignoriert.

JET_bitColumnTTKey

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

Die Reihenfolge der die Spaltendefinitionen mit dieser Option im Eingabearray wird die Rangfolge der einzelnen Schlüsselspalte für die temporäre Tabelle bestimmt. Die erste Spaltendefinition im Array mit dieser Option werden die wichtigsten Schlüsselspalte und so weiter. Wenn mehrere Schlüsselspalten angefordert werden, als die Datenbank-Engine unterstützt werden können wird diese Option für die Schlüsselspalten unterstützbaren ignoriert.

CColumn-Klasse

Finden Sie unter Prgcolumndef.

lcid

Die Gebietsschema-ID zu verwenden, um alle Unicode-Schlüsselspalte Daten in der temporären Tabelle zu vergleichen.

Eine beliebige Gebietsschema kann verwendet werden, solange das entsprechende Language Pack auf dem Computer installiert wurde. Die einzige Ausnahme ist, dass die sprachneutral Gebietsschema (LCID 0) ist.

Unter Windows Server 2003 und höher, wenn für diesen Parameter das sprachneutral Gebietsschema angegeben ist wird dann die Standard-Gebietsschema-ID (Deutsch) stattdessen verwendet werden. Dies ist der Wert 0 (null), um die Standardeinstellung zu kennzeichnen statt auf einen ungültigen Wert zulässig.

Wenn dieser Parameter nicht vorhanden ist und wenn der Pidxunicode -Parameter nicht vorhanden ist, dann die Standard-LCID verwendet wird, um alle Unicode-Schlüsselspalte Daten in der temporären Tabelle zu vergleichen. Die Standard-LCID ist US-Gebietsschema.

JET_errInvalidGrbit

Eine Gruppe von Bits, die Optionen für diesen Aufruf enthalten die 0 (null) oder mehr der folgenden enthalten.

Wert

Bedeutung

JET_bitTTErrorOnDuplicateInsertion

Diese Option fordert, dass jeder Versuch, einen Datensatz mit dem gleichen Indexschlüssel als zuvor eingefügten Datensatz einfügen sofort mit JET_errKeyDuplicate fehl. Wenn diese Option nicht angefordert wird dann ein Duplikat möglicherweise sofort erkannt und fehlschlagen oder möglicherweise im Hintergrund entfernt werden später vom Datenbankmodul ausgewählt werden, die temporäre Tabelle basierend auf der angeforderten Funktionalität implementieren Geschäftsstrategie.

Wenn diese Funktionalität nicht dann es erforderlich empfiehlt sich, diese nicht anfordern. Wenn diese Funktionalität nicht angefordert wird der temporäre Tabellenmanager möglicherweise eine Strategie für die Verwaltung der temporären Tabelle, die verbesserte Leistung führen können.

JET_bitTTForceMaterialization

Diese Option zwingt den temporäre Tabellenmanager aufgeben jeder Versuch, wählen eine intelligente Strategie für die Verwaltung der temporären Tabelle, die zu höherer Leistung führen.

JET_bitTTForwardOnly

Diese Option fordert, dass die temporäre Tabelle nur erstellt werden, wenn der temporäre Tabelle-Manager kann die Implementierung für Zwischenergebnisse von Abfragen optimiert. Wenn kein Merkmal der temporären Tabelle die Verwendung dieser Optimierung verhindern wird der Vorgang mit JET_errCannotMaterializeForwardOnlySort fehl.

Ein Nebeneffekt dieser Option soll können die temporäre Tabelle Datensätze durch doppelte Indexschlüssel enthalten. Weitere Informationen finden Sie unter JET_bitTTUnique.

Diese Option ist nur auf Windows Server 2003 und späteren Versionen verfügbar.

JET_bitTTIndexed

Diese Option fordert, dass die temporäre Tabelle flexibel genug, um wurde zum Nachschlagen von Datensätzen durch Indexschlüssel zulässig sein.

Wenn diese Funktionalität nicht dann es erforderlich empfiehlt sich, diese nicht anfordern. Wenn diese Funktionalität nicht angefordert wird der temporäre Tabellenmanager möglicherweise eine Strategie für die Verwaltung der temporären Tabelle, die verbesserte Leistung führen können.

JET_bitTTScrollable

Diese Option fordert, dass die temporäre Tabelle flexibel genug, um die zu scannenden in beliebiger Reihenfolge und-Richtung mithilfe von JetMoveermöglicht werden.

Wenn diese Funktionalität nicht dann es erforderlich empfiehlt sich, diese nicht anfordern. Wenn diese Funktionalität nicht angefordert wird der temporäre Tabellenmanager möglicherweise eine Strategie für die Verwaltung der temporären Tabelle, die verbesserte Leistung führen können.

JET_bitTTSortNullsHigh

Diese Option fordert an, dass NULL-Spaltenwerten näher an das Ende der Index als nicht-NULL-Spaltenwerten sortieren.

JET_bitTTUnique

Diese Option fordert, dass die letzte Gruppe von Datensätzen in die temporäre Tabelle Datensätze durch doppelte Indexschlüssel entnommen werden.

Vor Windows Server 2003 verwendet das Datenbankmodul immer diese Option, um wirksam zu sein, dass alle Indizes gruppierten muss ein primärer Schlüssel und somit eindeutig sein. Ab Windows Server 2003 ist es möglich, eine temporäre Tabelle erstellen, die keine Duplikate entfernt werden, wenn die Option JET_bitTTForwardOnly ebenfalls angegeben ist.

Es ist nicht möglich, zu wissen, welche Duplikat zu gewinnen und im Allgemeinen die Duplikate verworfen werden. Allerdings Aufforderung die Option "JET_bitTTErrorOnDuplicateInsertion" wird dann der erste Datensatz mit einem angegebenen Index-Schlüssel in die temporäre Tabelle eingefügt werden immer gewinnen.

JET_bitTTUpdatable

Diese Option fordert, dass die temporäre Tabelle werden flexibel genug, um die Datensätze zu ermöglichen, die zuvor eingefügt wurden, um später geändert werden. Wenn diese Funktionalität nicht dann es erforderlich empfiehlt sich, diese nicht anfordern.

Wenn diese Funktionalität nicht angefordert wird der temporäre Tabellenmanager möglicherweise eine Strategie für die Verwaltung der temporären Tabelle, die verbesserte Leistung führen können.

JET_bitTTIntrinsicLVsOnly

Anforderungen an nur intrinsische long-Werte zulassen.

Windows 7: JET_bitTTIntrinsicLVsOnly ist in Windows 7 eingeführt.

ptableid

Der Ausgabepuffer, der erhält der neuen Cursor in der neu erstellten temporären Tabelle geöffnet.

prgcolumnid

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

Spalten-IDs in diesem Array wird das Eingabearray von Spaltendefinitionen genau entsprechen. Daher muss die Größe dieses Puffers auf die Größe des Eingabearrays entsprechen.

Return Value

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

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errCannotMaterializeForwardOnlySort

JetOpenTempTable2 ist fehlgeschlagen, da JET_bitTTForwardOnly angegeben wurde, und die temporäre Tabelle angegeben konnte nicht mithilfe der vorwärts-Optimierung erstellt werden. Dieser Fehler wird nur von Windows Server 2003 und späteren Versionen zurückgegeben werden.

JET_errClientRequestToStopJetService

Es ist nicht möglich, um den Vorgang abzuschließen, da alle Aktivitäten in der Instanz dieser Sitzung aufgrund eines Aufrufs von JetStopServiceeingestellt hat.

JET_errInstanceUnavailable

Es ist nicht möglich, um den Vorgang abzuschließen, da die Sitzung zugeordnete Instanz ein schwerwiegender Fehler, der erfordert aufgetreten ist, 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äteren Versionen zurückgegeben werden.

JET_errInvalidCodePage

Cp-Bereich der JET_COLUMNDEF wurde nicht auf eine gültige Codepage festgelegt. Die einzigen gültigen Werte für Text-Spalten sind Englisch (1252) und Unicode (1200). Der Wert 0 bedeutet, dass der Standardwert (Deutsch, 1252) verwendet.

JET_errInvalidColumnType

Coltyp Bereich der JET_COLUMNDEF wurde nicht auf eine gültige Spaltentyp festgelegt.

JET_errIndexInvalidDef

Der Index konnte nicht erstellt werden, da eine ungültige Indexdefinition angegeben wurde.

JetOpenTempTable2 gibt diesen Fehler zurück, wenn:

  • Das Gebietsschema Language Neutral angegeben ist.

  • Ein ungültiger Satz der Normalisierung Flags angegeben ist.

Dieser Fehler wird nur von Windows 2000 zurückgegeben werden.

JET_errInvalidLanguageId

Der Index konnte nicht erstellt werden, da versucht wurde, verwenden Sie eine ungültige Gebietsschema-ID. Die Gebietsschema-ID kann entweder vollständig ungültig sein, oder möglicherweise nicht das entsprechende Sprachpaket installiert.

JET_errInvalidLCMapStringFlags

Der Index konnte nicht erstellt werden, da versucht wurde, einen ungültigen Satz von Normalisierungsflags verwenden. Dieser Fehler wird nur von Windows XP und späteren Versionen zurückgegeben werden. Unter Windows 2000 werden ungültige Normalisierungsflags in JET_errIndexInvalidDef führen.

JET_errNotInitialized

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

JET_errOutOfCursors

Der Vorgang ist fehlgeschlagen, da das Modul keinen Ressourcen erforderlich, um einen neuen Cursor öffnen zuweisen kann. Cursor-Ressourcen werden mithilfe von JetSetSystemParameter mit JET_paramMaxCursorskonfiguriert.

JET_errOutOfMemory

Der Vorgang ist fehlgeschlagen, weil nicht genügend Speicher zugewiesen werden konnte, um sie durchzuführen.

JetOpenTempTable2 können JET_errOutOfMemory zurück, wenn der Adressbereich des Hostprozesses zu stark fragmentiert wird. Der temporäre Tabellenmanager wird immer ein Stück 1 MB Adressraum für jeden unabhängig von der Menge der zu speichernden Daten erstellte temporäre Tabelle zugewiesen.

JET_errRestoreInProgress

Es ist nicht möglich, um den Vorgang abzuschließen, da ein Wiederherstellungsvorgang ausgeführt auf die Instanz der Sitzung zugeordnet wird.

JET_errSessionSharingViolation

Die gleiche Sitzung kann für mehrere Threads gleichzeitig verwendet werden.

Dieser Fehler wird nur von Windows XP und späteren Versionen zurückgegeben werden.

JET_errTermInProgress

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

JET_errTooManyColumns

Es wurde versucht, zu viele Spalten in der Tabelle hinzu. Eine Tabelle kann nicht mehr als JET_ccolFixedMost feste Spalten nicht mehr als Spalten mit variabler Länge JET_ccolVarMost und nicht mehr als JET_ccolTaggedMost Spalten markiert haben.

JET_errTooManyOpenIndexes

Der Vorgang ist fehlgeschlagen, da das Modul die Zwischenspeichern der Indizes der Tabelle erforderlichen Ressourcen zuordnen, kann nicht. Die Anzahl der Indizes, deren Schema zwischengespeichert werden kann, wird mithilfe von JetSetSystemParameter mit JET_paramMaxOpenTableskonfiguriert.

JET_errTooManyOpenTables

Der Vorgang ist fehlgeschlagen, da das Modul die Zwischenspeichern des Schemas der Tabelle erforderlichen Ressourcen zuordnen, kann nicht. Die Anzahl der Tabellen, deren Schema zwischengespeichert werden kann, wird mithilfe von JetSetSystemParameter mit JET_paramMaxOpenTableskonfiguriert.

JET_errTooManySorts

Der Vorgang ist fehlgeschlagen, da das Modul zum Erstellen einer temporären Tabelle erforderlichen Ressourcen zuweisen kann nicht. Temporäre Tabelle Ressourcen werden mithilfe von JetSetSystemParameter mit JET_paramMaxTemporaryTableskonfiguriert.

Bei Erfolg wird ein Cursor geöffnet, auf der neu erstellten temporären Tabelle zurückgegeben. Der Zustand der temporären Datenbank wird enthalten die neue temporäre Tabelle erstellt. Der Zustand der normalen Datenbanken von der Datenbank-Engine verwendet, bleiben unverändert.

Bei einem Fehler wird keine temporäre Tabelle erstellt werden und ein Cursor werden nicht zurückgegeben. Der Zustand der temporären Datenbank kann geändert werden. Der Zustand der normalen Datenbanken von der Datenbank-Engine verwendet, bleiben unverändert.

Anmerkungen

Finden Sie unter JetOpenTempTable.

Voraussetzungen

-Client,

Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.

Server

Erfordert WindowsServer 2008, WindowsServer 2003 oder Windows 2000 Server.

Kopfzeile

In Esent.h deklariert.

Library

Verwenden Sie ESENT.lib.

DLL

"ESENT.dll" erfordert.

Siehe auch

JET_COLUMNDEF
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_UNICODEINDEX
JetCloseTable
JetCreateTableColumnIndex
JetDupCursor
JetMove
JetRollback
JetSeek
JetSetSystemParameter
Systemparameter