启网、虚拟主机、域名注册、服务器合租
精致合租、5人、10人、15人服务器合租、freebsd合租
当前位置:站长中国 > flex教程 > Flex内嵌数据库SQLite的使用收藏

Flex内嵌数据库SQLite的使用收藏

2009 - 04 - 05  作者:  来源:  浏览:565  评论: 发布评论 问高手
推荐:启网 - 专业的主机、服务器合租提供商 17hz.net - 5年服务器合租精品服务
    

来源:http://blog.csdn.net/babylon_0049/archive/2009/04/03/4017370.aspx 



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




推荐教程