Adobe AIR中使用Flex连接Sqlite数据库(3)(查询)

系列文章导航
  1. Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表)
  2. Adobe AIR中使用Flex连接Sqlite数据库(2)(添加,删除,修改以及语句参数)
  3. Adobe AIR中使用Flex连接Sqlite数据库(3)(查询)
  4. Adobe AIR中使用Flex连接Sqlite数据库(4)(事务)
  5. Flex,Fms3相关文章索引
  6. 免费美女视频聊天,多人视频会议功能加强版本(Fms3和Flex开发(附源码))


本章主要总结表的查询

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);
具体代码实现可以参照以前的文章

 


3.代码下载
https://files.cnblogs.com/aierong/Air_Test_SQLite3.rar

 

收藏与分享

收藏到QQ书签 添加到百度搜藏 添加到百度搜藏 添加到雅虎收藏 分享到饭否 收藏到就喜欢网络收藏夹

RSS订阅我 什么是RSS?

feedsky    http://wap.feedsky.com/aierongrss    E-mail
订阅到雅蛙       使用RSS邮天下订阅    订阅到有道阅读
订阅到抓虾    鲜果阅读器订阅图标    Add to Google
訂閱 Bloglines    哪吒提醒    Subscribe in NewsGator Online

东莞.net俱乐部

东莞.net俱乐部 欢迎您的加入

posted @ 2009-01-23 10:01  aierong  阅读(5898)  评论(2编辑  收藏  举报