在執行階段中,各個 SQL 陳述式 (查詢或命令) 都會以
SQLStatement
物件來代表。請依照下列步驟,建立並執行 SQL 陳述式:
建立 SQLStatement 實體。
SQLStatement 物件代表您應用程式中的 SQL 陳述式。
var selectData:SQLStatement = new SQLStatement();
指定實際的 SQL 陳述式。
將陳述式文字建立為 String,並指定給 SQLStatement 實體的
text
屬性。
selectData.text = "SELECT col1, col2 FROM my_table WHERE col1 = :param1";
定義函數以處理執行作業的結果 (僅適用於非同步執行模式)。
使用
addEventListener()
方法,將函數註冊為 SQLStatement 實體之
result
和
error
事件的偵聽程式。
// using listener methods and addEventListener()
selectData.addEventListener(SQLEvent.RESULT, resultHandler);
selectData.addEventListener(SQLErrorEvent.ERROR, errorHandler);
function resultHandler(event:SQLEvent):void
{
// do something after the statement execution succeeds
}
function errorHandler(event:SQLErrorEvent):void
{
// do something after the statement execution fails
}
另外,您也可以使用
Responder
物件,指定偵聽程式方法。在此情況下,您可以建立 Responder 實體,然後將偵聽程式方法連結至該實體。
// using a Responder (flash.net.Responder)
var selectResponder = new Responder(onResult, onError);
function onResult(result:SQLResult):void
{
// do something after the statement execution succeeds
}
function onError(error:SQLError):void
{
// do something after the statement execution fails
}
如果陳述式文字包括參數定義,請為這些參數指定值。
若要指定參數值,請使用 SQLStatement 實體的
parameters
關聯陣列屬性。
selectData.parameters[":param1"] = 25;
執行 SQL 陳述式。
呼叫 SQLStatement 實體的
execute()
方法。
// using synchronous execution mode
// or listener methods in asynchronous execution mode
selectData.execute();
此外,如果您是在非同步執行模式中使用 Responder,而不是使用事件偵聽程式,請將 Responder 實體傳遞給
execute()
方法。
// using a Responder in asynchronous execution mode
selectData.execute(-1, selectResponder);
如需示範這些步驟的特定範例,請參閱下列主題:
從資料庫擷取資料
插入資料
變更或刪除資料