JetOpenTable-Funktion

Gilt für: Windows | Windows Server

JetOpenTable-Funktion

Die JetOpenTable-Funktion öffnet einen Cursor für eine zuvor erstellte Tabelle.

    JET_ERR JET_API JetOpenTable(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __in          const tchar* szTableName,
      __in_opt      const void* pvParameters,
      __in          unsigned long cbParameters,
      __in          JET_GRBIT grbit,
      __out         JET_TABLEID* ptableid
    );

Parameter

sesid

Der zu verwendende Datenbanksitzungskontext.

dbid

Der Datenbankbezeichner, der zum Suchen der Tabelle verwendet werden soll.

szTableName

Der Name der zu öffnenden Tabelle.

pvParameters

Veraltet. Auf NULL festgelegt.

cbParameters

Veraltet. Auf 0 (null) festgelegt.

grbit

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

Wert

Bedeutung

JET_bitTableDenyRead

Die Tabelle kann nicht für den Lesezugriff von einer anderen Datenbanksitzung geöffnet werden.

JET_bitTableDenyWrite

Die Tabelle kann nicht für den Schreibzugriff von einer anderen Datenbanksitzung geöffnet werden.

JET_bitTableNoCache

Speichern Sie die Seiten für diese Tabelle nicht zwischen.

JET_bitTablePermitDDL

Ermöglicht die DDL-Änderung für Tabellen, die als FixedDDL gekennzeichnet sind. Diese Option muss mit der Option JET_bitTableDenyRead verwendet werden.

JET_bitTablePreread

Enthält einen Hinweis darauf, dass sich die Tabelle wahrscheinlich nicht im Puffercache befindet und dass das Vorablesen für die Leistung von Vorteil sein kann.

JET_bitTableReadOnly

Fordert schreibgeschützten Zugriff auf die Tabelle an.

JET_bitTableSequential

Die Tabelle sollte sehr aggressiv vom Datenträger abgerufen werden, da die Anwendung sie sequenziell überprüft.

JET_bitTableUpdatable

Fordert Schreibzugriff auf die Tabelle an.

Ptableid

Zeigt bei Erfolg auf den Bezeichner der Tabelle. Bei einem Fehler ist der Inhalt für ptableid undefiniert.

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.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errInvalidDatabaseId

dbid ist kein gültiger Datenbankbezeichner.

JET_errInvalidgrbit

Eine schlechte Kombination von Grbit wurde übergeben.

JET_errInvalidName

Der in szTableName angegebene Name ist ungültig.

Weitere Informationen zu gültigen Tabellennamen finden Sie im Parameter szTableName in JetCreateTable.

JET_errObjectNotFound

Es wurde versucht, eine Tabelle zu öffnen, die in der Datenbank nicht vorhanden ist.

JET_errOutOfCursors

Der Vorgang ist fehlgeschlagen, da die Engine die ressourcen nicht zuordnen kann, die zum Öffnen eines neuen Cursors erforderlich sind. Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.

JET_errTableInUse

Die Tabelle wird von einem anderen Datenbankvorgang verwendet.

JET_wrnTableInUseBySystem

Eine nicht schwerwiegende Warnung, die angibt, dass die Tabelle vom System verwendet wird.

JET_errTableLocked

Die Tabelle wird durch einen anderen Datenbankvorgang gesperrt.

JET_errTooManyOpenTables

Es wurde versucht, zu viele eindeutige Tabellen gleichzeitig zu öffnen. Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.

Bemerkungen

Tabellen, die mit JetOpenTable geöffnet werden, sollten in der Regel mit JetCloseTable geschlossen werden. Die Ausnahme von dieser Regel tritt auf, wenn JetOpenTable in einer Transaktion aufgerufen wird und für die Transaktion ein Rollback ausgeführt wird (mit JetRollback). Beim Rollback einer Transaktion wird die Tabelle automatisch geschlossen. In diesem Fall ist es ein Fehler, die Tabelle mit JetCloseTable zu schließen.

Es ist zulässig, Systemtabellen mit JetOpenTable zu öffnen (z. B. MSysObjects, MSysUnicodeFixup). Das Schema der Systemtabellen kann sich ändern, sodass der Zugriff auf Systemtabellen abgeraten wird. Die Anzahl eindeutiger Tabellen, die gleichzeitig geöffnet werden können, wird direkt von JET_paramMaxOpenTables beeinflusst. Wenn die Tabelle derzeit geöffnet ist, wird ein neuer Cursor für die Tabelle erstellt. Cursorressourcen werden mithilfe von JetSetSystemParameter mit JET_paramMaxCursors konfiguriert. Siehe auch JetDupCursor.

Anforderungen

Anforderung Wert

Client

Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.

Server

Erfordert Windows Server 2008, Windows Server 2003 oder Windows 2000 Server.

Kopfzeile

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Unicode

Implementiert als JetOpenTableW (Unicode) und JetOpenTableA (ANSI).

Weitere Informationen

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetDupCursor
JetRollback
JetSetSystemParameter
Ressourcenparameter