`
Zsb007
  • 浏览: 59343 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

flex sqlite

阅读更多
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());
代码说明:
SQLResult 类提供对为响应 SQL 语句(SQLStatement 实例)执行而返回的数据的访问
lastInsertRowID属性:上次生成的行标识符(由 SQL INSERT 语句生成),如果执行的语句不是 INSERT 语句,则该值为 0。



3.语句参数的使用
在多次使用一个 SQL 语句但该语句中的值不同的情况下,最佳方法是使用包括参数的 SQL 语句而不是在 SQL 文本中包括字面值。参数是语句文本中的一个占位符,每次执行语句时都将它替换为实际的值。
参数名称由“:”或“@”字符后跟一个名称组成,例如::itemName  @firstName
还可以使用未命名参数,使用“?”字符表示 SQL 语句中的参数。按照参数在语句中的顺序,每个参数都分配有一个数字索引,数字索引从索引 0(表示第一个参数)开始。

使用参数的优点:
1.性能更佳
2.显式数据类型指定
3.安全性更高

实例代码:得到自动增长列的行标识数值(异步版本)
private var stmt1:SQLStatement;
private function GetlastInsertRowID():void
{
stmt1 = new SQLStatement();
stmt1.sqlConnection = con;

stmt1.text="INSERT INTO emp (firstName, lastName, salary) VALUES (@firstName, @lastName, @salary)";
stmt1.parameters["@firstName"]="f";
stmt1.parameters["@lastName"]="l";
stmt1.parameters["@salary"]=88; 

stmt1.addEventListener(SQLEvent.RESULT,okHandler);
stmt1.addEventListener(SQLErrorEvent.ERROR,errorHandler);
stmt1.execute();
}

private function okHandler(evt:SQLEvent):void
{
Alert.show("插入成功");
var re:SQLResult= this.stmt1.getResult();
var id:Number=re.lastInsertRowID;
Alert.show(id.toString());
}

private function errorHandler(evt:SQLErrorEvent):void
{
Alert.show("失败");
Alert.show(evt.error.message);
Alert.show(evt.error.details);
}
代码说明:
此例题中用到了语句参数@firstName, @lastName, @salary,并分别赋值
要是使用未命名参数,把代码修改如下即可(注意数字索引从0开始):
stmt1.text="INSERT INTO emp (firstName, lastName, salary) VALUES (?, ?, ?)";
stmt1.parameters[0]="f";
stmt1.parameters[1]="l";
stmt1.parameters[2]=88;



4.删除操作
private function del():void
{
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = con;
stmt.text="delete from emp where salary=:salary";
stmt.parameters[":salary"]=88;
stmt.execute();

var result:SQLResult = stmt.getResult();
    var count:Number = result.rowsAffected;
   
    Alert.show("成功删除"+count.toString()+"行");
}
代码说明:
rowsAffected属性:指示受此操作影响的行数
请注意,当相关的 SQL 操作为不带 WHERE 子句的 DELETE 语句时(即该语句删除表中的所有行),rowsAffected 属性始终为 0,而不管删除了多少行。如果您需要知道删除的行数,则可以包括 WHERE 子句 WHERE 1 = 1,在这种情况下,将删除所有行,并且 rowsAffected 属性会精确反映已删除的行数



5.修改操作
private function updateData():void
{
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = con;
stmt.text="update emp set lastName=:lastName where salary=:salary";
stmt.parameters[":lastName"]="la";
stmt.parameters[":salary"]=88;
stmt.execute();

var result:SQLResult = stmt.getResult();
    var count:Number = result.rowsAffected;
   
    Alert.show("成功修改"+count.toString()+"行");
}
代码说明:
把salary=88的lastName修改为"la"

分享到:
评论

相关推荐

    Air Flex Sqlite通信

    本示例着重于“Air Flex Sqlite通信”,即如何在Adobe AIR应用中使用Flex与SQLite数据库进行交互。 SQLite是一个轻量级的、自包含的、无服务器的SQL数据库引擎,被广泛用于移动应用和嵌入式系统。在Adobe AIR中,...

    flex access sqlite libs

    标题 "flex access sqlite libs" 涉及到的是使用Flex技术访问SQLite数据库库的实践。Flex是一种基于ActionScript的开放源代码框架,主要用于构建富互联网应用程序(Rich Internet Applications,RIA)。SQLite则是一...

    flex sqllite 操作

    标题中的“flex sqlite操作”指的是使用Adobe Flex与SQLite数据库进行交互的技术。Flex是一种基于ActionScript的开放源代码框架,常用于构建富互联网应用程序(RIA)。SQLite则是一个轻量级的、自包含的、无服务器的...

    flex air sqlite客户端安装软件

    标题中的“flex air sqlite客户端安装软件”指的是一个使用Adobe Flex技术和Adobe AIR运行环境开发的SQLite数据库管理工具。Flex是用于创建富互联网应用程序(RIA)的开源框架,而AIR(Adobe Integrated Runtime)...

    flex4.6 air 异步操作sqlite数据库

    "flex4.6 air 异步操作sqlite数据库"的主题着重于如何在Flex 4.6和Adobe AIR环境中实现非阻塞的SQLite数据库操作。在传统的同步操作中,程序会等待数据库操作完成才会执行下一步,这可能导致用户界面冻结,尤其是在...

    Flex air sqlite操作实例

    Flex air 本地程序实例 使用sqlite 学员信息简单查询 本程序分三层 由不同的as(ActionScript)来实现,具体: ConnDb.as 数据助手类,专门用来封装SQLITE的操作,其中也包括了:创建数据库,数据表的方法. Student_...

    flex+cairngorm+Sqlite

    - **SQLite API**:在Flex中,我们可以使用AS3-SQLite库来访问SQLite数据库,实现CRUD操作。 - **数据绑定**:Flex支持数据绑定,可以将SQLite数据直接绑定到UI组件,简化开发过程。 - **事务处理**:SQLite支持...

    Flex4.6手机项目预载外部sqlite数据库

    总结来说,"Flex4.6手机项目预载外部sqlite数据库"是一个旨在提高用户体验的策略,通过预先准备和复制SQLite数据库到应用存储目录,确保数据的即时可用性。这一方法适用于那些需要大量初始数据或者复杂数据结构的...

    Flex用户信息管理示例(Cairngorm+AIR+sqlite数据库)

    《Flex用户信息管理示例:Cairngorm+AIR+SQLite数据库详解》 在现代软件开发中,用户信息管理是一项核心功能,对于任何系统来说都至关重要。本示例以Flex技术为基础,结合Cairngorm框架和Adobe Integrated Runtime ...

    Flex万年历记事本_flex源码

    Flex应用可以利用本地存储机制,如SQLite数据库或者XML文件,来保存用户的记事内容。 9. **样式和皮肤**:Flex支持样式和皮肤,开发者可以通过定义CSS样式来改变组件的外观,使应用符合特定的设计风格。 10. **...

    Flex-Air-SQLite操作类及其简要用法.pdf

    《Flex-AIR-SQLite操作类及其简要用法》 在Adobe Flex和Adobe AIR应用开发中,SQLite数据库是一种常见的本地数据存储解决方案。SQLite是一个轻量级、无服务器、自包含的SQL数据库引擎,非常适合在桌面和移动应用...

    Air SQLite工具及源码

    本文将深入探讨Air SQLite工具及其源码,帮助开发者更好地理解和利用这个工具在Flex项目中实现与SQLite数据库的交互。 首先,Air SQLite工具是一个实用的接口,它允许开发者以直观和高效的方式与SQLite数据库进行...

    flex 实例连载 air 全面

    本系列教程将深入探讨SQLite在Adobe Air环境中的应用,通过Flex技术进行实战演示,帮助开发者更好地理解和掌握SQLite的使用。 一、SQLite简介 SQLite是一款开源、自包含、无服务器、零配置、事务性的SQL数据库引擎...

    Flex-Air-SQLite操作类及其简要用法.docx

    《Flex-AIR-SQLite操作类及其简要用法》 在使用Adobe Integrated Runtime (AIR)进行应用程序开发时,SQLite数据库是一种常见的本地数据存储解决方案。SQLite是一个轻量级、无服务器、自包含的数据库引擎,适合...

    两个 AIR SQLite 例子

    HTTPservice是Flex或Adobe AIR中用于从远程服务器获取数据的服务,而XML通常是一种常见的数据交换格式。这个过程可能包括以下步骤: 1. 使用HTTPservice发送HTTP请求到服务器,请求XML数据。 2. 接收XML响应,并...

    flex air中文官方帮助文档

    Flex Air支持与SQLite本地数据库的交互,允许在离线状态下存储和检索数据。文档将阐述如何连接数据库,执行SQL查询,以及数据绑定到UI组件的方法。 七、网络通信 Flex Air可以利用HTTP、HTTPS、Socket和XMLSocket...

    sqlite3源码

    这个过程涉及到词法分析和语法分析,通过lex和yacc(或flex和bison)工具生成的词法分析器和语法分析器实现。 接着,编译器将AST转化为一系列的虚拟机指令,这些指令在SQLite3的虚拟机上执行。这个虚拟机使用栈结构...

    flex4 学习资料

    11. **本地存储和远程数据服务**:学习如何利用Flex4与数据库交互,如使用AMF(Action Message Format)进行远程数据访问,以及SQLite本地数据库的使用。 12. **国际化和本地化**:掌握Flex4中实现多语言支持的方法...

    Flex4.5 手机项目

    在这个项目中,开发人员利用Flex的强大功能来创建用户界面,同时结合SQLite数据库进行本地数据存储,以实现离线数据操作。 首先,该项目使用SQLite作为数据库系统。SQLite是一款轻量级的关系型数据库,特别适合...

Global site tag (gtag.js) - Google Analytics