Adobe AIR中使用Flex连接Sqlite数据库(4)

1.查询
同步版本:
private function query():void
{
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = con;
stmt.text = "select empId,firstName,lastName,salary from emp";
stmt.execute(); 

var result:SQLResult = stmt.getResult();

if ( result.data!=null )
{
var numResults:int =result.data.length;

for (var i:int = 0; i < numResults; i++)
{
var row:Object = result.data[i];
var output:String = "empId: " + row.empId;
output += "; firstName: " + row.firstName;
output += "; lastName: " + row.lastName;
output += "; salary: " + row.salary; 

Alert.show(output); 
}
}
}
代码说明:
getResult ()方法:执行结果的SQLResult对象的访问
SQLResult的data属性:执行语句而返回的数据。如果某一语句不返回任何数据,则此属性为 null。这就是本代码需要判断是否为空的目的。


2.查询部分结果
默认情况下,执行 SELECT 语句会一次检索结果集的所有行,有时我们需要查询第1行怎么办?
查询第1行的异步版本实例代码如下:
private var responder:Responder;
private var stmt:SQLStatement;
private function querytop1():void
{
stmt = new SQLStatement();
stmt.sqlConnection = con;
stmt.text = "select empId,firstName,lastName,salary from emp where firstName=:firstName";
stmt.parameters[":firstName"]="f";
responder= new Responder(resultHandler, errorHandler);
stmt.execute(1,responder); 
}

private function resultHandler(result:SQLResult):void
{
if ( result.data!=null )
{
var numResults:int =result.data.length;

for (var i:int = 0; i < numResults; i++)
{
var row:Object = result.data[i];
var output:String = "empId: " + row.empId;
output += "; firstName: " + row.firstName;
output += "; lastName: " + row.lastName;
output += "; salary: " + row.salary; 

Alert.show(output); 
}
}
}

private function errorHandler(error:SQLError):void
{
Alert.show(error.message);
Alert.show(error.details);
}
代码说明:
execute () 方法参数说明:
第1个参数:此值指示该语句一次返回的行数。默认值为 -1,指示一次返回所有结果行,
第2个参数:一个Responder对象,指定操作成功或失败时要调用的方法。
实际在本例中,也可以不用Responder对象,而用事件侦听器执行SQLStatement,以确定语句的执行何时完成或失败
stmt.addEventListener(SQLEvent.RESULT,resultHandler);
stmt.addEventListener(SQLErrorEvent.ERROR,errorHandler);
具体代码实现可以参照以前的文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值