[AIR]データベースサンプル

AIR でSQLite(データベース)のサンプルを作ってみました。

以下は、デスクトップに「db」というフォルダを作って、そのフォルダ内に「dbfile.db」というファイルを作るというもの。

 


import flash.filesystem.File;

import flash.data.SQLConnection;
import flash.data.SQLStatement;
import flash.data.SQLResult;

import flash.errors.SQLError;

import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import flash.events.IOErrorEvent;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;


var dbfile:File;
var dir:File;

var dbCon:SQLConnection;
var stmt:SQLStatement;

dir = File.desktopDirectory.resolvePath("db");
dir.createDirectory();

// db ファイル作成
dbfile = dir.resolvePath("dbfile.db");

// db 接続
dbCon = new SQLConnection();

try {
dbCon.open(dbfile);

trace("DB 接続完了");

} catch(error:SQLError) {
trace("エラー: " + error.message);
trace("詳細: " + error.details);
}


stmt = new SQLStatement();
stmt.sqlConnection = dbCon;

// table 作成
var tblString:String = "CREATE TABLE IF NOT EXISTS NameTable(" +
"stuId INTEGER PRIMARY KEY AUTOINCREMENT," +
"Name TEXT" +
")";
stmt.text = tblString;

try{

stmt.execute();

trace("Table作成");

}catch(error:SQLError) {
trace("Table作成 失敗");
trace("エラー: " + error.message);
trace("詳細: " + error.details);
}

// insert データ
var insString:String = "INSERT INTO NameTable(Name) VALUES ('なまえ')";
stmt.text = insString;

try{
stmt.execute();

trace("insert 成功");

}catch(error:SQLError){
trace("insert 失敗");
trace("エラー: " + error.message);
trace("詳細: " + error.details);
}


// select データ
var selString:String = "SELECT * FROM NameTable";
stmt.text = selString;

var selresult:Array;

try{

stmt.execute();
var result:SQLResult = stmt.getResult();
selresult = result.data is Array ? result.data : [{rows:result.rowsAffected}];

trace("select 成功");

} catch(error:SQLError) {

trace("select 失敗");
trace("エラー: " + error.message);
trace("詳細: " + error.details);
}

// 結果表示
for (var s:String in selresult) {
trace(s + ": " +selresult[s].Name);
}

.fla(CS6で作成)は、こちら

本プログラムまたは本プログラムの結果に関し、いかなる責任も負いかねますので、予めご了承ください。

コメント