Die Interaktion zwischen Datenbank- und Sitzungskomponenten
Nach oben zu Mit TDatabase auf Datenbanken zugreifen - 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.
Im Allgemeinen wird über die Eigenschaften einer Sitzungskomponente ein global geltendes Verhalten voreingestellt, das für alle zur Laufzeit erstellten impliziten Datenbankkomponenten gilt. So wird beispielsweise über die Eigenschaft KeepConnections der betreffenden Sitzung festgelegt, ob eine Datenbankverbindung beibehalten werden soll, auch wenn die zugehörige Datenmenge geschlossen wird (Voreinstellung) oder ob die Verbindungen nach dem Schließen aller Datenmengen getrennt werden sollen. Gleichfalls wird über das als Voreinstellung verwendete Bde.DBTables.TSession.OnPassword-Ereignis einer Sitzung sichergestellt, dass ein Standard-Dialogfeld für die Kennworteingabe angezeigt wird, sobald eine Anwendung versucht, eine Verbindung zu einem Server herzustellen, für den ein Kennwort angegeben werden muss.
Sitzungsmethoden zeigen ein etwas abweichendes Verhalten. Die Methoden der Komponente Bde.DBTables.TSession gelten für alle Datenbankkomponenten, unabhängig davon, ob sie explizit erzeugt oder implizit durch eine Datenmenge als Instanz erstellt wurden. So schließt beispielsweise die Sitzungsmethode DropConnections alle Datenmengen, die zur Datenbankkomponente einer Sitzung gehören, und trennt dann die Datenbankverbindungen, selbst wenn die Eigenschaft KeepConnection für einzelne Datenbankkomponenten auf True gesetzt wurde.
Methoden für Datenbankkomponenten gelten nur für die Datenmengen, die mit der betreffenden Datenbankkomponente verknüpft sind. Angenommen, die Datenbankkomponente Database1 ist mit der Standardsitzung verknüpft. In diesem Fall schließt die Methode Database1.CloseDataSets() nur diejenigen Datenmengen, die mit Database1 verknüpft sind. Offene Datenmengen, die zu anderen Datenbankkomponenten innerhalb der Standardsitzung gehören, bleiben geöffnet.