ESE-Handles
Gilt für: Windows | Windows Server
ESE-Handles
ESE-Handles werden verwendet, um Sitzungen zu erstellen und auf Datenbanken zuzugreifen. Sie werden in einer Hierarchie verwaltet, was bedeutet, dass die Ausgabe von einer Ebene für den Zugriff auf Ressourcen auf der nächsten Ebene verwendet wird.
Das folgende Diagramm zeigt die Hierarchie der Handles und die entsprechenden Funktionen, die die Handles erstellen. Neben den Funktionen werden auch die Handles angegeben, die im Aufruf zum Erstellen des neuen Handles verwendet werden.
.gif)
Wie im Diagramm dargestellt, ist die -Instanz das Stammhandle und die Ebene, auf der die Datenbank bei einer unerwarteten Prozessbeendigung oder beim Herunterfahren des Systems wiederhergestellt wird. Das Instanzhandle JET_INSTANCE wird von JetCreateInstance und JetCreateInstance2erstellt. Die nächste Ebene, die Sitzungsebene, ist der Transaktionskontext der Datenbank-Engine und die Ebene, unter der alle Datenbankvorgänge ausgeführt werden. Das Sitzungshandle JET_SESID wird im Kontext der -Instanz im Aufruf von JetBeginSessionerstellt. Die Sitzungs-ID wird in allen nachfolgenden Aufrufen des Zugriffs auf Tabellen und Datenbanken verwendet. Wenn die Instanz von mehreren Threads gleichzeitig verwendet wird, muss jeder Thread ein eigenes Sitzungshandle verwenden. Das Datenbankhandle wird mithilfe des Sitzungshandle erstellt und hauptsächlich zum Verwalten des Schemas der Datenbank verwendet, kann aber auch zum Verwalten von Tabellen innerhalb der Datenbank verwendet werden. Datenbankhandles können nur in der Sitzung verwendet werden, in der sie erstellt werden. Das Handle für die Datenbank wird im Aufruf von JetCreateDatabase oder JetOpenDatabaseerstellt. Tabellen werden der Datenbank-ID zugeordnet, unter der sie erstellt werden.
Der JET_TABLEID Datentyp enthält ein Handle für einen Datenbankcursor. Es wird verwendet, um Datensätze zu überprüfen, Datensätze zu durchsuchen oder Datensätze zu aktualisieren und zu löschen. Das Tabellenhandle wird im Aufruf von JetOpenTableoder JetCreateTableerstellt. JetOpenTempTable, JetOpenTempTable2und JetOpenTempTable3 erstellen auch Tabellen-IDs für temporäre Tabellen, und JetCreateTableColumnIndex und JetCreateTableColumnIndex2 geben Tabellen-IDs in der out-Struktur zurück. Die in der Tabelle erstellten Spalten verfügen jeweils über einen eindeutigen Spaltenbezeichner oder COLUMN_ID. Die Spalten-IDs werden in den Aufrufen von JetAddColumnoder in Aufrufen von JetOpenTempTable, JetOpenTempTable2oder JetOpenTempTable3 für temporäre Tabellen erstellt. Spalten-IDs können auch für eine bestimmte Spalte anhand des Namens mit APIs wie JetGetTableColumnInfoabgerufen werden.