flex sqlite基本用法
flex sqlite基本用法
页面
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
import sqlTest.SQLTest;
protected function button1_clickHandler(event:MouseEvent):void{
var sql:SQLTest = new SQLTest();
}
]]>
</fx:Script>
<s:Button x="192" y="221" label="按钮" click="button1_clickHandler(event)"/>
</s:WindowedApplication>
sqlite类
package sqlTest{
import flash.data.SQLConnection;
import flash.data.SQLResult;
import flash.data.SQLStatement;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
import flash.filesystem.File;
import flash.net.Responder;
import mx.controls.Alert;
public class SQLTest{
private var con:SQLConnection;
private var stmt:SQLStatement;
private var creatTableSQL:String ="CREATE TABLE IF NOT EXISTS user ( "+
"userId INTEGER PRIMARY KEY AUTOINCREMENT, " +
"userName TEXT, " +
"password TEXT )";
private var insertSQL:String = "INSERT INTO user (userName, password) VALUES ('admin', 'admin')";
//语句参数 :itemName @firstName 或者 ? 使用问号时只能用索引方式设值 索引从0开始
private var insertSQLparams:String = "INSERT INTO user (userName, password) VALUES (:userName, @password)";
private var deleteSQLparams:String = "delete from user where userName=:userName"
private var updateSQLparams:String = "update user set password= ? where userName= ?";
private var selectSQL:String = "select userName,password from user"
public function SQLTest(){
initApp();
}
private function initApp():void{
var file:File = File.applicationStorageDirectory.resolvePath("MySQLite.sqlite")
con = new SQLConnection();
//异步
// asyncOpen(con,file);
//同步
open(con,file);
}
private function open(con:SQLConnection,file:File):void{
try{
//若参数为空则建立在内存上 若文件不存在则自动创建
con.open(file);
con.begin();
Alert.show("Create/open database finished");
stmt = new SQLStatement();
stmt.sqlConnection = con;
//1.create table
stmt.text = creatTableSQL;
//2.insert data
stmt.text = insertSQL;
//带占位符insert
// stmt.text = insertSQLparams;
// stmt.parameters[":userName"] = "aaa";
// stmt.parameters["@password"] = "admin";
//3.delete
// stmt.text = deleteSQLparams;
// stmt.parameters[0] = "admin";
//4.update
// stmt.text = updateSQLparams;
// stmt.parameters[0] = "aaa";
// stmt.parameters[1] = "aaa";
//5.select
// stmt.text = selectSQL;
// var responder:Responder = new Responder("resultHandler", "errorHandler");
// stmt.execute(1,responder);//此处可以指定返回行数 ,若不使用responder则添加2个监听器如下
// stmt.addEventListener(SQLEvent.RESULT,resultHandler);
// stmt.addEventListener(SQLErrorEvent.ERROR,errorHandler);
stmt.execute();
var result:SQLResult = stmt.getResult();
//row
if(result!=null){
//上一次INSERT 操作的行标识符 如果执行的语句不是 INSERT 语句,则该值为 0
var row:Number = result.lastInsertRowID;
row = result.rowsAffected;
Alert.show("Row"+row.toString());
}
//data
if(result.data!=null){
var numResults:int =result.data.length;
for (var i:int = 0; i < numResults; i++) {
var re:Object = result.data[i];
var output:String = "userName: " + re.userName;
output += "; password: " + re.password;
Alert.show(output);
}
}
Alert.show("finished");
con.commit();
}catch(error:SQLErrorEvent){
con.rollback();
errorHandler(error);
}
}
private function asyncOpen(con:SQLConnection,file:File):void{
// openAsync SQLConnection 对象操作导致错误时调度
con.addEventListener(SQLErrorEvent.ERROR,errorHandler);
// openAsync 方法调用操作成功完成时调度
con.addEventListener(SQLEvent.OPEN,openHandler);
//若参数为空则建立在内存上 若文件不存在则自动创建
con.openAsync(file);
}
private function openHandler(evt:SQLEvent):void{
Alert.show("Create/open database finished");
stmt = new SQLStatement();
stmt.sqlConnection = con;
stmt.text = creatTableSQL;
stmt.addEventListener(SQLEvent.RESULT, createResult);
stmt.addEventListener(SQLErrorEvent.ERROR, createError);
stmt.execute();
}
private function errorHandler(evt:SQLErrorEvent):void{
Alert.show("SQLErrorEvent");
Alert.show(evt.error.message);
Alert.show(evt.error.details);
}
private function createResult(event:SQLEvent):void {
Alert.show("create table finished");
}
private function createError(event:SQLErrorEvent):void {
Alert.show("Error message:", event.error.message);
Alert.show("Details:", event.error.details);
}
}
}
flex sqlite基本用法的更多相关文章
- Flex 布局相关用法
前言: 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中 就不容易实现. 2009年,W3C提出了 ...
- Flex的基础用法【转】
//获得屏幕的分辨率 var x:Number=Capabilities.screenResolutionX; var y:Number=Capabilities.screenResolutionY; ...
- flex sqlite 操作blog 二进制数据
1, 通常的操作方式: 首先我们建立表:CREATE TABLE "pages" ("id" varchar, "data& ...
- Android 操作SQLite基本用法
一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的 ...
- sqlite query用法
本文转自http://blog.csdn.net/double2hao/article/details/50281273,在此感谢作者 query(table, columns, selection, ...
- 数据持久化之sqlite基本用法
一.ACID 即原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability). 原子性:整个事务中的所有操作,要么全部完成,要么全部不完 ...
- sqlite基本用法
DDL-数据定义语言 CREATE 创建一个新的表,一个表的视图,或者数据库中的其他对象. ALTER 修改数据库中的某个已有的数据库对象,比如一个表. DROP 删除整个表,或者表的视图,或者数据库 ...
- flex布局常见用法小结
1,display:flex 这个在父容器中声明: 2,flex-direction:row / column 默认为横向,也在父容器中设置,定义flex布局的主轴方向:一条轴为主轴,那么另一条轴自然 ...
- Android SQLite基本用法
SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLit ...
随机推荐
- gitignore.io-程序猿值得拥有的智能生成gitignore文件的秘密武器
gitignore.io Create useful .gitignore files for your project by selecting from 360 Operating System, ...
- vue动态加载图片,取消格式验证
vue 一. 动态加载图片 (以vue模板为例) app.vue 代码如下: <template> <div id="app"> <img :src= ...
- Spring+SpringMVC+MyBatis深入学习及搭建(三)——MyBatis全局配置文件解析
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6874672.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(二)——My ...
- 在已经部署svn 服务器上,搭建svn项目 成功版
1.进入svn目录,建立版本库 svnadmin create svntest svntest为svn项目名称 2. hooks/ 目录下新建 post-commit 文件 [钩子脚本] #!/bin ...
- bash下. : () {} [] [[]] (())的解释 (非原创,侵删)
Copy from http://blog.chinaunix.net/uid-20380484-id-1692999.html bash下有很多像{}.[]等一些符号命令,下面是我对一些常用的符号命 ...
- JS简单实现自定义右键菜单
RT,一个简单的例子,仅仅讲述原理 <div id="menu" style="width: 0;height: 0;background: cadetblue;p ...
- 第一天上午——HTML网页基础知识以及相关内容
今天上午学习了HTML基础知识以及相关内容,还有DW的基本使用方法. HTML(HyperText Markup Language):超文本标记语言,超文本:网页中除了包含文本文字之外,还包含了图片, ...
- Elasticsearch和Kibana安装
Elasticsearch安装 Elasticsearch至少需要Java 8.在撰写本文时,建议你使用Oracle JDK版本1.8.0_131.Java安装因平台而异,所以在这里不再赘述.Orac ...
- Java基础——继承
学习Java继承之前,我们想回忆一下Java面向对象需要特别注意的几个关键点. 面向对象是将复杂的事情简单化了,它通过封装的方式使得代码的重用性更高和安全性更强.平时我们要学会用面向对象的方式去思考, ...
- Unity3D常用 API 之实例化与销毁
1.实例化游戏物体 1.1.游戏中的案例介绍 在很多 MMORPG 类的游戏中都有类似于“金钱副本”的副本关卡.在这类副 本中通常都是限定一个时间,在这个时间内玩家可以尽情的破坏,然后收集金钱. 分析 ...