Flex内嵌数据库SQLite的使用

 

public class DBClass

{

import flash.data.SQLConnection;  

import flash.data.SQLStatement;  

import flash.data.SQLResult;  

import flash.errors.SQLError;

import flash.events.SQLErrorEvent; 

import flash.filesystem.File; //数据库文件 

import mx.controls.Alert;

import com.xidigo.model.*;

import com.xidigo.model.ModelManager;

private var con:SQLConnection;

private var createStmt:SQLStatement;

public function DBClass()

{

}

public function initDB():void{

var file:File = File.applicationStorageDirectory.resolvePath(ModelManager.DBPATH);

  ModelManager.db = this;

con = new SQLConnection();

createStmt = new SQLStatement();

try

{

  con.open(file);

createStmt.sqlConnection = con; 

}

catch(error:SQLError)

{

 Alert.show(error.message);

 Alert.show(error.details);

}

}

public function CreateDB():void

{

  var userSql:String =  

    "CREATE TABLE IF NOT EXISTS user (" +  

    "    Id INTEGER PRIMARY KEY AUTOINCREMENT, " +  

    "    Name TEXT, " +  

    "    Password TEXT, " +  

    "    Privilege INTEGER" +  

    ")"; 

     

   var logSql:String =  

    "CREATE TABLE IF NOT EXISTS log (" +  

    "    Id INTEGER PRIMARY KEY AUTOINCREMENT, " +  

    "    UserName TEXT, " +  

    "    LogTime TEXT, " +

    "    Content TEXT, " +

    "    PreContent TEXT, " +  

    "    Type INTEGER" +  

    ")"; 

CreateTable(userSql);

   CreateTable(logSql);

if (QueryUsers() == null){

var insertUser:String = "INSERT INTO user(Name,Password,Privilege) VALUES ('"+String("admin")+"','"+String("admin")+"',"+int(1)+")"

   createStmt.text = insertUser;

createStmt.execute();

}

}

private function CreateTable(str:String):void{

createStmt.text = str;

createStmt.execute();

}

public function QueryUsers():Array{

createStmt.text = "select * from user";

createStmt.execute();  

 

var result:SQLResult = createStmt.getResult();

var p:Array = new Array();

if ( result.data!=null )

{

return result.data;

}

return null;

}

public function QueryUser(user:User):Boolean{

createStmt.text = "select * from user where Name='"+ user.name +"' AND Password='"+ user.password +"'";

createStmt.execute();  

 

var result:SQLResult = createStmt.getResult();

 

if ( result.data!=null )

{

return true;

}

return false;

}

public function FindUser(user:User):Array{

createStmt.text = "select * from user where Name='"+ user.name +"'";

createStmt.execute();  

 

var result:SQLResult = createStmt.getResult();

 

if ( result.data!=null )

{

return result.data;

}

return null;

}

public function SaveUser(user:Object):void{

createStmt.text = "INSERT INTO user(Name,Password,Privilege) VALUES ('"+user.Name+"','"+user.Password+"','"+user.Privilege+"')";

createStmt.execute();

}

public function UpdateUser(user:User):void{

createStmt.text = "UPDATE user set Password='"+ user.password+ "' where Name='"+ user.name +"'";

createStmt.execute();

}

public function DelUser(user:Object):void{

createStmt.text = "delete from user where Id='"+ user.Id+ "'";

createStmt.execute();

}

public function QueryLogs():Array{

createStmt.text = "select * from log order by LogTime desc";

createStmt.execute();  

 

var result:SQLResult = createStmt.getResult();

var p:Array = new Array();

if ( result.data!=null )

{

return result.data;

}

return null;

}

public function SaveLog(log:Logged):void{

createStmt.text = "INSERT INTO log(UserName,LogTime,Content,PreContent,Type) VALUES ('"+log.userName+"','"+log.time+"','"+log.content+"','"+log.preContent+"',"+log.type+")";

createStmt.execute();

}

public function DelLog(delStr:String):void{

createStmt.text = "DELETE FROM log WHERE LogTime<'"+ delStr +"'";

createStmt.execute();  

}

}

 

 

两点说明:

1、这里查询的结果是Array的,而不是ArrayCollection。

2、Array中的数据是Object类型的,而不是自己定义的类

 

参考文章:

http://www.cnblogs.com/aierong/archive/2009/01/22/flex_Sqlite_1.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值