Arbeiten mit mehreren Datenbanken

Adobe AIR 1.0 und höher

Mit der SQLConnection.attach() -Methode können Sie für eine SQLConnection -Instanz, die bereits mit einer Datenbank verbunden ist, eine Verbindung mit einer weiteren Datenbank herstellen. Sie benennen die verbundene Datenbank mit dem name-Parameter im Aufruf der attach() -Methode. Wenn Sie Anweisungen zur Bearbeitung dieser Datenbank schreiben, können Sie diesen Namen in einem Präfix (in der Form Datenbankname.Tabellenname ) verwenden, um Tabellennamen in Ihren SQL-Anweisungen anzugeben. Auf diese Weise teilen Sie der Laufzeitumgebung mit, dass die Tabelle in der genannten Datenbank zu finden ist.

Sie können eine einzelne SQL-Anweisung ausführen, die Tabellen aus mehreren Datenbanken betrifft, wenn diese Datenbanken mit derselben SQLConnection-Instanz verbunden sind. Wenn eine Transaktion mit der SQLConnection-Instanz erstellt wird, gilt diese Transaktion für alle SQL-Anweisungen, die unter Verwendung dieser SQLConnection-Instanz ausgeführt werden. Dabei ist es gleichgültig, für welche der verbundenen Datenbanken die Anweisung ausgeführt wird.

Alternativ dazu können Sie auch mehrere SQLConnection-Instanzen in einer Anwendung erstellen, die jeweils mit einer Datenbank oder mit mehreren Datenbanken verbunden sind. Wenn Sie mehrere Verbindungen zu derselben Datenbank verwenden, ist zu beachten, dass eine Datenbanktransaktion nicht für alle SQLConnection-Instanzen gilt. Wenn Sie mit mehreren SQLConnection-Instanzen eine Verbindung zu derselben Datenbank herstellen, können Sie sich also nicht darauf verlassen, dass Datenänderungen in allen Verbindungen in der erwarteten Weise angewendet werden. Angenommen, zwei UPDATE - oder DELETE -Anweisungen werden über verschiedene SQLConnection-Instanzen für dieselbe Datenbank ausgeführt. Wenn nach einer Operation ein Anwendungsfehler auftritt, könnten die Datenbankdaten in einem Zwischenstadium verbleiben, das nicht rückgängig gemacht werden kann und möglicherweise die Integrität der Datenbank (und damit der Anwendung) beeinträchtigt.