Utilizzate il metodo
SQLConnection.attach()
per aprire una connessione a un ulteriore database su un'istanza
SQLConnection
che presenta già un database aperto. Al database allegato si dà nome tramite il parametro name nella chiamata del metodo
attach()
. Quando si scrivono le istruzioni per manipolare quel database, è possibile utilizzare tale nome in un prefisso (tramite la maschera
database-name.table-name
) per qualificare gli eventuali nomi di tabelle nelle istruzioni SQL, indicando al runtime che la tabella è reperibile nel database nominato.
È possibile eseguire una singola istruzione SQL che comprende le tabelle di più di un database che sono connesse alla stessa istanza SQLConnection. Se si crea una transazione sull'istanza SQLConnection, tale transazione si applica a tutte le istruzioni SQL eseguite tramite quell'istanza SQLConnection. Ciò vale indipendentemente dall'identità del database allegato su cui l'istruzione viene eseguita.
In alternativa è possibile anche creare in un'applicazione più istanze SQLConnection ciascuna delle quali è connessa a uno o più database. Tuttavia, se usate più connessioni al medesimo database, tenete presente che le transazioni dei database non vengono condivise da tutte le istanze SQLConnection. Di conseguenza, se ci si connette allo stesso file di database tramite più istanze SQLConnection, le modifiche ai dati non verranno riflesse su entrambe le connessioni come ci si aspetterebbe. Ad esempio, se due istruzioni
UPDATE
o
DELETE
vengono eseguite sullo stesso database tramite diverse istanze SQLConnection, e si verifica un errore nell'applicazione dopo che ha luogo un'operazione, è possibile che i dati del database vengano lasciati in uno stato intermedio non reversibile e ciò può compromettere l'integrità dell'intero database e, di conseguenza, dell'applicazione.
|
|
|