日期:2014-05-16  浏览次数:20437 次

Adobe AIR中使用Flex连接Sqlite数据库(2)(添加,删除,修改以及语句参数)

本章主要总结数据库的插入,删除,修改,以及语句参数的使用
本章提到的同步和异步操作,不明白的可以看上篇文章
http://www.cnblogs.com/aierong/archive/2009/01/22/flex_Sqlite_1.html

?

0.SQLStatement类介绍
SQLStatement实例用于针对通过 SQLConnection 实例打开的本地 SQL 数据库执行 SQL 语句。?
SQLStatement实例通过将 SQLConnection 实例设置为 SQLStatement 实例的 sqlConnection 属性的值来链接到 SQLConnection 实例。text 属性用要执行的 SQL 语句的实际文本进行填充。如有必要,可以使用 parameters 属性指定 SQL 语句参数的值,并通过调用 execute() 方法执行该语句。


1.插入数据
同步版本:
import mx.controls.Alert;
private var con:SQLConnection;

private function initApp():void
{
?var file:File = File.applicationStorageDirectory.resolvePath("myTestdb.db")
?
?con = new SQLConnection();
?var stmt:SQLStatement = new SQLStatement();
?
?try
?{
??con.open(file);
??
??stmt.sqlConnection = con;?
??stmt.text="INSERT INTO emp (firstName, lastName, salary) VALUES ('f', 'l', 88)";
??stmt.execute();?
?}
?catch(error:SQLError)
?{
??Alert.show(error.message);
??Alert.show(error.details);
?}
}
代码说明:
SQLStatement类的实例用于针对通过 SQLConnection 实例打开的本地 SQL 数据库执行 SQL 语句

?

2.得到已插入行的数据库生成的行标识
得到自动增长列的行标识数值
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = con;?
stmt.text="INSERT INTO emp (firstName, lastName, salary) VALUES ('f', 'l', 88)";
stmt.execute();
?
var result:SQLResult = stmt.getResult();?
var primaryKey:Number = result.lastInsertRowID;?
????
Alert.show(primaryKey.toString());
代码说明:
SQLR