當您撰寫程式碼來使用本機 SQL 資料庫時,需要從兩個執行模式中指定一個模式以執行資料庫作業:非同步或同步執行模式。本節中的程式碼範例會示範如何以這兩種方式執行每一項作業,讓您能夠選擇最適合您需求的範例。
在非同步執行模式中,您需要對執行階段下達指示,然後執行階段會在您要求的作業完成或失敗時傳送事件。首先,請指示資料庫引擎執行作業。在應用程式繼續執行的同時,資料庫引擎會在背景中進行工作。最後,當作業完成 (或失敗) 時,資料庫引擎會傳送事件。事件會觸發您的程式碼,執行後續作業。這種做法有一項重大的優點:在主應用程式碼繼續執行的同時,執行階段會在背景中執行資料庫作業。如果資料庫作業明顯耗費相當長的時間,應用程式會繼續執行。最重要的是,使用者可以繼續與應用程式互動,而螢幕畫面並不會凍結。不過,非同步作業程式碼可能會比撰寫另一種程式碼更複雜。這種複雜度通常會發生在多個相依作業必須分成各種不同事件偵聽程式方法的情況。
就概念上來說,將作業撰寫成單一步驟順序 (也就是一組同步作業) 的程式碼,而不是分成多個事件偵聽程式方法的一組作業,會比較簡單。除了非同步資料庫作業以外,Adobe AIR 也可以讓您以同步方式執行資料庫作業。在同步執行模式中,作業不會在背景中執行,而會跟其它所有應用程式程式碼在相同的執行順序中執行。請指示資料庫引擎執行作業。接著,程式碼會在資料庫引擎進行工作時暫停。當作業完成之後,就會繼續執行程式碼的下一行。
作業要以非同步方式或同步方式執行,會在 SQLConnection 層級上設定。使用單一資料庫連線,您就無法以同步方式執行一些作業或陳述式,同時又以非同步方式執行其它作業或陳述式。您可以呼叫 SQLConnection 方法來開啟資料庫,指定 SQLConnection 應在同步或非同步執行模式中執行作業。如果您呼叫
SQLConnection.open()
,則連線會在同步執行模式中執行作業;如果您呼叫
SQLConnection.openAsync()
,則連線作業會在非同步執行模式中執行作業。一旦 SQLConnection 實體使用
open()
或
openAsync()
連線至資料庫之後,就會固定以同步或非同步執行模式作業,除非您關閉並重新開啟資料庫連線。
每一種執行模式都各有優點。雖然每一種模式的大多很類似,但是在各模式中工作時,還是需要注意當中的一些差異。如需有關這些主題的詳細資訊,以及使用各模式的建議,請參閱
使用同步和非同步資料庫作業
。