SQL ステートメントの操作

Adobe AIR 1.0 およびそれ以降

個々の SQL ステートメント(クエリまたはコマンド)は、ランタイム内で SQLStatement オブジェクトとして表されます。SQL ステートメントを作成して実行するには次の手順に従ってください。

SQLStatement インスタンスを作成します。

SQLStatement オブジェクトは、アプリケーション内で SQL ステートメントを表します。

var selectData = new air.SQLStatement();

クエリを実行するデータベースを指定します。

そのためには、SQLStatement オブジェクトの sqlConnection プロパティを、目的のデータベースに接続されている SQLConnection インスタンスに設定します。 http://help.adobe.com/ja_JP/air/reference/html/flash/data/SQLConnection.html

// A SQLConnection named "conn" has been created previously 
selectData.sqlConnection = conn;

実際の 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(air.SQLEvent.RESULT, resultHandler); 
selectData.addEventListener(air.SQLErrorEvent.ERROR, errorHandler); 
     
function resultHandler(event) 
{ 
    // do something after the statement execution succeeds 
} 
     
function errorHandler(event) 
{ 
    // do something after the statement execution fails 
}

または、 Responder オブジェクトを使用してリスナーメソッドを指定することもできます。その場合は、Responder インスタンスを作成してリスナーメソッドを関連付けます。

// using a Responder 
     
var selectResponder = new air.Responder(onResult, onError); 
     
function onResult(result) 
{ 
    // do something after the statement execution succeeds 
} 
     
function onError(error) 
{ 
    // 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);

これらの手順の具体例については、以下のトピックを参照してください。

データベースからのデータの取得