AIR本地数据库的使用

AIR本地数据库的使用

最近做个桌面的小应用,想要使用air的本地数据库功能,保存用户的历史操作信息和数据,其实就是保存用户已经打开过的文件。对用户的操作信息的保存,的确是很有用的,日后可以以此进行分析,总结用户习惯,设计更加友好的程序,更符合用户自然人操作行为的界面。另外本地数据库的使用也可以保存程序的状态,比如用户的个性化设置,用户偏好。
我想把用户打开文件的历史记录写进本地数据库里,以后点开打开记录时查询数据库。软件安装后第一次打开使用时,会创建数据库,以后再打开软件会先查看数据库是否存在,如果存在,则查询数据库,读取记录;如果不存在或者被删掉了,则新建数据库。
首先说一下AS3提供的关于数据库的API: SQLConnection, SQLStatement,SQLResult,File, SQL查询时的事件有SQLEvent.RESULT, SQLEvent.OPEN, SQLErrorEvent.ERROR.
第一步打开数据库连接。

var conn:SQLConnection = new SQLConnection();
conn.addEventListener(SQLEvent.OPEN, connOpenHandler);
var dbFile:File = new File(“……..”);//本地数据库文件的地址。通常会放在应用程序的安装目录里。
conn.open(dbFile);

//定义打开处理函数;

private function connOpenHandler(evt:SQLEvent):void{
//….
}

第二步新建数据库查询对象,并与数据库连接关联。

var dbStatement:SQLStatement = new SQLStatement();
dbStatement.sqlConnection = conn;

在确定数据库连接打开的状态下,可以进行数据库查询了。
//假设保存已打开文件信息的表是 “fileOpenedDB”,该表保存了文件名,文件地址,浏览次数。

Var sqltxt:String=”SELECT fileName, fileUrl FROM fileOpenedDB”;
dbStatement.sql=sqltxt;
dbStatement.addEventListener(air.SQLEvent.RESULT, resultHandler);
dbStatement.addEventListener(air.SQLErrorEvent.ERROR, errorHandler);

实现查询结果侦听

Private function resultHandler(evt)
{
    var result = (evt.target as SQLStatement).getResult();
    if (result != null)
    {
        var numRows = result.data.length;
        for (var i:int = 0; i < numRows; i++)
        {
            //处理查询结果
            var row = result.data[i];
            //…..
        }
    }
}
Private function errorHandler(event)
{
    trace("An error occured while executing the statement.");
}

基本上就是这种用法,创建数据表也是一样的,只是把SQLStatement的查询语句改掉就行。

AIR的本地数据库查询支持同步和异步两种执行模式。对于数据量比较大的查询应该保用异步方式,毕竟快速响应对于用户来说是很重要的。
网络上有很多相关的文章,有兴趣的可以自己去搜搜。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值