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