单个 SQL 语句(查询或命令)在运行时中表示为
SQLStatement
对象。按照以下步骤创建和执行 SQL 语句:
创建 SQLStatement 实例。
在您的应用程序中,SQLStatement 对象表示 SQL 语句。
var selectData:SQLStatement = new SQLStatement();
指定对其运行查询的数据库。
为此,请将 SQLStatement 对象的
sqlConnection
属性设置为与所需数据库连接的
SQLConnection
实例。
// A SQLConnection named "conn" has been created previously
selectData.sqlConnection = conn;
指定实际的 SQL 语句。
将语句文本创建为字符串,并将其分配给 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);
有关演示这些步骤的特定示例,请参阅以下主题:
从数据库检索数据
插入数据
更改或删除数据