守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 730|回复: 1

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

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    51782
    钢镚
    1422

    开源英雄守望者

    发表于 2015-6-12 16:51:27 | 显示全部楼层 |阅读模式
    Adobe AIR中使用Flex连接Sqlite数据库(3)(查询)

    本章主要总结表的查询

    1.查询
    同步版本:

    1. private function query():void
    2. {
    3. var stmt:SQLStatement = new SQLStatement();
    4. stmt.sqlConnection = con;
    5.      stmt.text = "select empId,firstName,lastName,salary from emp";
    6. stmt.execute();  

    7. var result:SQLResult = stmt.getResult();

    8. if ( result.data!=null )
    9. {
    10.   var numResults:int =result.data.length;
    11.    
    12.   for (var i:int = 0; i < numResults; i++)
    13.      {
    14.          var row:Object = result.data[i];
    15.          var output:String = "empId: " + row.empId;
    16.          output += "; firstName: " + row.firstName;
    17.          output += "; lastName: " + row.lastName;
    18.          output += "; salary: " + row.salary;  
    19.          
    20.          Alert.show(output);  
    21.      }
    22.   }
    23. }
    复制代码

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


    2.查询部分结果
    默认情况下,执行 SELECT 语句会一次检索结果集的所有行,有时我们需要查询第1行怎么办?
    查询第1行的异步版本实例代码如下:

    1. private var responder:Responder;
    2. private var stmt:SQLStatement;
    3. private function querytop1():void
    4. {
    5. stmt = new SQLStatement();
    6. stmt.sqlConnection = con;
    7. stmt.text = "select empId,firstName,lastName,salary from emp where firstName=:firstName";
    8.      stmt.parameters[":firstName"]="f";
    9.      responder= new Responder(resultHandler, errorHandler);
    10. stmt.execute(1,responder);  
    11. }

    12. private function resultHandler(result:SQLResult):void
    13. {
    14. if ( result.data!=null )
    15. {
    16.   var numResults:int =result.data.length;
    17.    
    18.   for (var i:int = 0; i < numResults; i++)
    19.      {
    20.          var row:Object = result.data[i];
    21.          var output:String = "empId: " + row.empId;
    22.          output += "; firstName: " + row.firstName;
    23.          output += "; lastName: " + row.lastName;
    24.          output += "; salary: " + row.salary;  
    25.          
    26.          Alert.show(output);  
    27.      }
    28.   }
    29. }

    30. private function errorHandler(error:SQLError):void
    31. {
    32. Alert.show(error.message);
    33. Alert.show(error.details);
    34. }
    复制代码

    代码说明:
    execute () 方法参数说明:
    第1个参数:此值指示该语句一次返回的行数。默认值为 -1,指示一次返回所有结果行,
    第2个参数:一个Responder对象,指定操作成功或失败时要调用的方法。
    实际在本例中,也可以不用Responder对象,而用事件侦听器执行SQLStatement,以确定语句的执行何时完成或失败

    1. stmt.addEventListener(SQLEvent.RESULT,resultHandler);
    2. stmt.addEventListener(SQLErrorEvent.ERROR,errorHandler);
    复制代码

    具体代码实现可以参照以前的文章



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




    http://www.cnblogs.com/aierong/archive/2009/01/23/flex_air_Sqlite_Query.html



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    51782
    钢镚
    1422

    开源英雄守望者

     楼主| 发表于 2015-6-12 17:01:43 | 显示全部楼层
    守望者AIR技术交流社区(www.airmyth.com)
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2019-11-13 10:19 , Processed in 0.043561 second(s), 31 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表