As3.0操作SQLite的类
Kuma post in [About Codes]
2010-3-19 9:16 Friday
一直在写那个日程管理的小软件,写的时候为了最大化扩展能力,写起来很是费力。于是发现真正独立来写一个东西的时候很是不容易。现在贴上一个自己完善的ActionScript3.0操作SQLite数据库的类,自己在使用中很是方便,资源共享之。
注意,由于插件问题,代码中所有半角双引号都被替换为了:" 字符。为了避免错误,如要复制代码,请使用代码块上方的工具,点击“view code”可以在新视窗中查看完整无错代码,然后在此视窗复制即可。
package{
import flash.display.MovieClip;
import com.Kuma.doSQL.doSQL;
import flash.events.Event;
public class main extends MovieClip {
private var sql:String = new String();
private var doSqlAction:doSQL;
private var intoArray:Array;
private var hourMeter:int;
public function main() {
//初始化一个执行对象,需要传入一个数据库名参数
doSqlAction = new doSQL("dateBase.db");
//加入一个帧监听,用于检测数据库是否已经被打开
addEventListener(Event.ENTER_FRAME, enterAction);
//初始化一个sql语句
sql="CREATE TABLE IF NOT EXISTS timeManager (" +
" timeId INTEGER PRIMARY KEY AUTOINCREMENT, " +
" timeTime TEXT, " +
" timeHour TEXT, " +
" timeThings TEXT, " +
" timeMode INT, " +
" timePutoff INT, " +
" timeMusic TEXT, " +
" salary NUMERIC CHECK (salary > 0)" +
")";
}
private function enterAction(e:Event) {
if (doSqlAction.intBoolean == true) {
//如果数据库已经被打开,则在改数据库创建一张表
doSqlAction.doSqlAction(sql);
//移除监听
removeEventListener(Event.ENTER_FRAME, enterAction);
//插入一条新记录
intoArray = new Array();
intoArray.push(new Array("timeTime", "2011-09-03"), new Array("timeThings", "补考"), new Array("timeMode", "1"), new Array("timePutoff", "2"), new Array("timeMusic", "today.mp3"), new Array("timeHour", "7"));
doSqlAction.intoNewThings(intoArray, "timeManager");
//修改刚刚插入的记录
intoArray = null;
intoArray = new Array();
intoArray.push(new Array("timeTime", "2011-09-13"), new Array("timeThings", "补考才怪,heihei"), new Array("timeMode", "1"));
doSqlAction.changeOldThings(intoArray, "timeManager", "WHERE timeId=8");
//查询刚刚插入的记录
doSqlAction.selectRuleThings("*", "timeId>0", "timeManager");
addEventListener(Event.ENTER_FRAME,stopAction);//用于监听查询是否结束
}
}
private function stopAction(e:Event) {
hourMeter += 1;
if (doSqlAction.sqlDoState==1) {
hourMeter=0;
removeEventListener(Event.ENTER_FRAME, stopAction);
//返回结果是一个三维数组
trace("out:"+doSqlAction.returnResult()[0][1][0]);
} else {
if (hourMeter==100) {
hourMeter=0;
trace("查询超时!");
removeEventListener(Event.ENTER_FRAME, stopAction);
//删除刚刚创建的条目
doSqlAction.deleteRuleThings("timeId=1","timeManager");
}
}
}
}
}
上面是使用示例,包含了创建表、插入记录、修改记录、查询记录并返回结果、删除记录等常用操作。示例代码在必要的时候已经标注注释,不再一一赘述。在使用上述示例的时候,你的FLA文件必须被指定为AIR项目方可,否则无法使用示例代码。
附件可以下载该类,如有任何使用问题,可以留言给我。当然,如果有需要改进的地方,也请提出来,大家一起探讨。
附件下载:
doSQL.rar 1.58KB
doSQL.rar 1.58KB
Air的NativeWindow和Window的区别
DatePicker支持flash的日历(AS3)

你寫得很好,我希望放在個人日志中並標明出處,如果不可我會刪除