Apertura e chiusura dei database
Per aprire un database, è possibile utilizzare il metodo open o openOrCreate, entrambi nella classe DatabaseFactory.
È possibile aprire connessioni multiple di sola lettura per un database, ma è possibile eseguire contemporaneamente una sola connessione di lettura/scrittura.
Se si desidera aprire un database sia in modalità di lettura/scrittura che di sola lettura, aprirlo prima in modalità di lettura/scrittura. Il tentativo di aprire un database in modalità di lettura/scrittura quando è già aperto (sia in modalità di lettura/scrittura che di sola lettura) genererà un messaggio del tipo "Errore del file system 12", indicante che vi è stato un tentativo di aprire più connessioni di lettura/scrittura per lo stesso database.
Per chiudere un database, utilizzare il metodo Database.close. Per assicurarsi che close venga sempre chiamato, è necessario chiamarlo in un blocco finally.
Il database potrebbe chiudersi automaticamente quando il file system non è disponibile. Ad esempio, se un file del database viene memorizzato in una scheda di memoria esterna e l'utente connette lo smartphone a un computer attivando la modalità di memorizzazione di massa USB, il database potrebbe chiudersi perché il file system è gestito dal sistema operativo del computer e il dispositivo non dispone del relativo accesso. Tutti i database aperti sulla scheda esterna si chiudono e non possono essere aperti fino al completamento della modalità di memorizzazione di massa USB.
È possibile tenere traccia dell'utilizzo della memoria per ciascuna connessione al database tramite i seguenti metodi: Database.getCacheUsed, Database.getSchemaUsed e Database.getStatementUsed.
Aggiunta o rimozione dei database
L'aggiunta di un database a una connessione al database esistente consente di inviare una query a più database in una singola istruzione SQL, utilizzando i nomi specificati dall'utente per i database al momento dell'aggiunta. Il primo database da connettere è considerato il database main.
È possibile allegare sia database in testo normale che crittografati. È possibile allegare fino a dieci database a una connessione al database esistente, tramite il metodo Database.attach. È possibile rimuovere i database tramite il metodo Database.detach.
Come alternativa a Database.detach, è possibile utilizzare il comando DETACH di SQLite per rimuovere i database. Per motivi di sicurezza, l'API Database non consente l'utilizzo del comando ATTACH in un'istruzione SQL.
Per visualizzare i database allegati alla connessione al database corrente, utilizzare il pragma database_list.
Nel frammento di codice seguente, viene utilizzata l'API Database per allegare un database in testo normale al database corrente.
URI myURI = URI.create("file:///SDCard/test.db");
d.attach(myURI, "test", null);
//Do something with the attached database
Nel frammento di codice seguente, viene rimosso il database tramite il metodo detach.
d.detach("test");
Nel frammento di codice seguente, viene rimosso il database tramite un'istruzione SQL.
d.executeStatement("DETACH test");
Le informazioni sono state utili? Inviateci i vostri commenti.