Utilizzo delle operazioni di database sincrone e asincrone

Adobe AIR 1.0 e versioni successive

Nelle sezioni precedenti abbiamo descritto le operazioni comuni eseguite sui database, come ad esempio il recupero, l'inserimento, l'aggiornamento e l'eliminazione dei dati, come pure la creazione del file del database, delle tabelle e di altri oggetti all'interno del database. Gli esempi forniti illustrano l'esecuzione di tali operazioni in modalità sia asincrona che sincrona.

Ricapitolando: nella modalità di esecuzione asincrona si comanda al motore del database di eseguire una certa operazione. Il motore esegue quindi il comando in background, mentre l'applicazione continua ad essere in esecuzione. Al termine dell'operazione il motore del database crea un evento per avvertire di ciò l'utente. Il vantaggio chiave dell'esecuzione asincrona è che il runtime esegue le operazioni del database in background mentre il codice dell'applicazione principale continua ad essere in esecuzione. Questo serve in particolar modo nei casi in cui l'operazione impiega molto tempo ad essere eseguita.

Nella modalità di esecuzione sincrona, invece, le operazioni non vengono eseguite in background. Per prima cosa, si comanda al motore del database di eseguire un'operazione. Il codice si ferma a quel punto in attesa che il motore esegua il comando. Al termine dell'operazione, l'esecuzione prosegue con la riga successiva del codice.

Se è presente una sola connessione per il database, non è possibile eseguire alcune delle operazioni o delle istruzioni in modo sincrono ed altre in modo asincrono. Al momento dell'apertura della connessione al database, specificate se SQLConnection opera in modalità di esecuzione sincrona o asincrona. Se si chiama SQLConnection.open(), la connessione funziona in modalità di esecuzione sincrona e se si chiama SQLConnection.openAsync() la modalità sarà invece asincrona. Una volta che un'istanza di SQLConnection è connessa a un database tramite open() o openAsync(), la modalità di esecuzione viene fissata su sincrona o asincrona.