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
Tags: 标签: AIR as3

引用地址:

LD
2010-08-22 20:04
感謝樓主的doSQL.as

你寫得很好,我希望放在個人日志中並標明出處,如果不可我會刪除
博主回复:可以~
奇遇
2010-03-20 00:20
沙发~
博主回复:沙发王子

昵称

网址

电邮