AIR 的本地数据库访问,操作
来源:xflex.cn 作者:猫粮 2008-06-22 【大 中小】 TAG:
好像有人要 Air 访问数据库的教程,我做了个
在附件中~代码只有 100 行多一点点
其实 Air 访问 Sqllite 数据库一点都不难~也很便利。
例子中我只做了一个插入和删除的功能
感觉最麻烦的就是将数据库初始化!
因为时间和身体问题我就没有把 sql 操作进行封装了
哪位朋友有时间有兴趣的话可以把 Air 的 sql 操作封装一下...
代码:
private function openHandler(event:SQLEvent):void
{
//初始化 sqlStatement 对象
sqlStat = new SQLStatement();
sqlStat.sqlConnection = conn;
var sql:String =
"CREATE TABLE IF NOT
EXISTS employees (" +
INTEGER PRIMARY KEY AUTOINCREMENT, " +
firstName TEXT, " +
lastName TEXT, " +
NUMERIC CHECK (salary > 0)" +
empId
salary
"
"
"
"
")";
sqlStat.text = sql;
sqlStat.addEventListener(SQLEvent.RESULT, statResult);
sqlStat.addEventListener(SQLErrorEvent.ERROR,
createError);
sqlStat.execute();
}
private function statResult(event:SQLEvent):void
{
//很无耻地强迫获取数据时更新数据
var sqlresult:SQLResult = sqlStat.getResult();
if(sqlresult.data == null){
getResult();
return;
}
datafiled.dataProvider = sqlresult.data;
}
//获取数据函数
private function getResult():void{
var sqlquery:String = "SELECT * FROM employees"
excuseUpdate(sqlquery);
}
private function createError(event:SQLErrorEvent):void
{
trace("Error code:", event.error.code);
trace("Details:", event.error.message);
}
private function errorHandler(event:SQLErrorEvent):void
{
trace("Error code:", event.error.code);
trace("Details:", event.error.message);
}
//数据更新接口
private function excuseUpdate(sql:String):void{
sqlStat.text = sql;
sqlStat.execute();
}
//插入操作
private function insertemp():void{
employees(firstName,lastName,salary) values('" +
var
sqlupdate:String
=
"Insert
into
firstName.text +
"','" +
lastName.text +
"','" +
salary.text +
"')";
debug.text+=sqlupdate+"\n"
excuseUpdate(sqlupdate)
}
//删除操作
private function deleteemp():void{
var sqldelete:String = "delete from employees where
datafiled.selectedItem.empId +
"'";
excuseUpdate(sqldelete);
debug.text+=sqldelete+"\n"
}
empId='" +
]]>
dataField="lastName"/>
文 章 来 自 : 闪 客 居 (www.flashas.net) 详 文 参 考 :
http://www.flashas.net/html/AIR/20080622/3350.html