Datenbanksitzungen verwalten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Datenbanksitzungen verwalten - Index

Hinweis: Die Borland Database Engine (BDE) ist veraltet und wird nicht mehr weiterentwickelt. Die BDE wird Unicode beispielsweise nie unterstützen. Sie sollten mit der BDE keine neuen Entwicklungen vornehmen. Überprüfen Sie, ob Sie Ihre vorhandenen Datenbankanwendungen nicht von der BDE nach dbExpress migrieren können.

Bei einer BDE-Anwendung werden die Datenbankverbindungen, Treiber, Cursor, Abfragen usw. innerhalb des Kontexts einer oder mehrerer BDE-Sitzungen verwaltet. Sitzungen dienen dazu, eine Menge von Datenbankzugriffsoperationen wie Datenbankverbindungen voneinander zu isolieren, ohne dass hierzu eine weitere Instanz der Anwendung gestartet zu werden braucht.

Alle BDE-Datenbankanwendungen enthalten automatisch eine Standard-Sitzungskomponente mit dem Namen Bde.DBTables.Session, welche die Standard-BDE-Sitzung kapselt. Wenn Sie Datenbankkomponenten zur Anwendung hinzufügen, werden diese automatisch mit der Standardsitzung verknüpft (der Wert für die Eigenschaft SessionName ist Default). Die Standardsitzung ermöglicht eine globale Steuerung aller Datenbankkomponenten, die nicht mit einer anderen Sitzung verknüpft sind, unabhängig davon, ob es sich um implizite Komponenten handelt (die von der Sitzung zur Laufzeit beim Öffnen einer Datenmenge erstellt wurden, die mit keiner von Ihnen erzeugten Datenbankkomponente verknüpft ist) oder um persistente Komponenten (die explizit von der Anwendung erstellt wurden). Die Standardsitzung ist im Datenmodul oder Formular beim Entwurf nicht sichtbar, Sie können aber zur Laufzeit im Quelltext auf die betreffenden Eigenschaften und Methoden zugreifen.

Um die Standardsitzung zu verwenden, brauchen Sie keinen Quelltext zu schreiben, es sei denn, einer der folgenden Fälle tritt ein:

Unabhängig davon, ob Sie Datenbankkomponenten zur Entwurfszeit zu einer Anwendung hinzufügen oder diese dynamisch zur Laufzeit erstellen, werden diese automatisch mit der Standardsitzung verknüpft, es sei denn, Sie weisen Sie explizit einer anderen Sitzung zu. Wenn Sie eine Datenmenge öffnen, die nicht mit einer Datenbankkomponente verknüpft ist, geschieht Folgendes:

  • Die Datenbankkomponente wird automatisch zur Laufzeit erstellt.
  • Die Datenbankkomponente wird mit der Standardsitzung verknüpft.
  • Einige der Haupteigenschaften der Datenbankkomponente werden anhand der Eigenschaften der Standardsitzung initialisiert. Eine der wichtigsten ist KeepConnections, denn sie bestimmt, ob die Datenbankverbindungen von einer Anwendung beibehalten oder getrennt werden.

Die Standardsitzung stellt in vielen Fällen verwendbare Standardeinstellungen zur Verfügung, die von den meisten Anwendungen ohne Änderungen übernommen werden können. Sie brauchen nur dann eine Datenbankkomponente mit einer explizit benannten Sitzung zu verknüpfen, wenn die Komponente eine Abfrage über eine Datenbank durchführt, die bereits von der Standardsitzung geöffnet wurde. In diesem Fall müssen alle gleichzeitig durchgeführten Abfragen in eigenen Sitzungen ausgeführt werden. Für Multithread-Anwendungen sind ebenfalls mehrere Sitzungen erforderlich, weil jeder Thread eine eigene Sitzung benötigt.

Jede Anwendung kann zusätzliche Sitzungskomponenten nach Bedarf erstellen. BDE-Datenbankanwendungen enthalten automatisch eine Sitzungslistenkomponente mit dem Namen Bde.DBTables.Sessions, die Sie zur Verwaltung aller Sitzungskomponenten verwenden können. Weitere Informationen zu Datenbanksitzungen im Zusammenspiel mit Threads in BDE-gestützten Anwendungen finden Sie unter Mehrere Sitzungen verwalten.

Sitzungskomponenten können problemlos in Datenmodulen platziert werden. Wenn Sie allerdings ein Datenmodul, das eine oder mehrere Sitzungskomponenten enthält, in die Objektablage stellen möchten, müssen Sie die Eigenschaft AutoSessionName auf True setzen, um Namespace-Konflikte zu vermeiden, wenn andere Benutzer die Komponenten erben.

Siehe auch