Metoda
SQLConnection.attach()
służy do otwierania połączenia z dodatkową bazą danych w wystąpieniu klasy
SQLConnection
, które zawiera już otwartą bazę danych. Dołączonej bazie danych nadaje się nazwę za pomocą parametru name w metodzie
attach()
. W przypadku pisania instrukcji do manipulowania tą bazą danych można użyć tej nazwy w przedrostku (stosując formę
database-name.table-name
) w celu określenia nazw dowolnych tabel w instrukcjach SQL, co stanowi dla środowiska wykonawczego informację o tym, że tabelę można znaleźć w nazwanej bazie danych.
Istnieje możliwość wykonania pojedynczej instrukcji SQL, która będzie zawierała tabele z wielu baz danych połączonych z jedną instancją klasy SQLConnection. Jeśli transakcja jest tworzona w instancji klasy SQLConnection, ta transakcja ma zastosowanie do wszystkich instrukcji SQL, które są wykonywane za pomocą instancji klasy SQLConnection. Taka zależność jest prawdziwa niezależnie od tego, na której dołączonej bazie danych działa instrukcja.
Możliwe jest również utworzenie wielu instancji klasy SQLConnection w aplikacji, a każda z tych instancji będzie połączona z jedną lub wieloma bazami danych. Jeśli jednak używanych jest wiele połączeń z tą samą bazą danych, należy pamiętać o tym, że transakcja bazy danych nie jest współużytkowana w instancjach klasy SQLConnection. W konsekwencji: jeśli wiele instancji klasy SQLConnection zostanie połączonych z jedną bazą danych, nie można oczekiwać, że zmiany danych z wszystkich połączeń będą stosowane w określony sposób. Na przykład: jeśli dwie instrukcje
UPDATE
lub
DELETE
zostaną uruchomione dla tej samej bazy danych za pośrednictwem różnych instancji SQLConnection, a po wykonaniu jednej operacji wystąpi błąd aplikacji, wówczas dane w bazie danych mogą pozostać w stanie pośrednim, którego odwrócenie nie będzie możliwe, co może wpływać na integralność bazy danych (a w konsekwencji aplikacji).