![]()
2010.05.21 CHIKATHREESIX
2010.04.16 KNOCKKNOCK
2010.03.08 TAKAIW
2010.02.01 CHIKATHREESIX
2010.01.28 TAKAIW
![]()
![]()
KNOCKKNOCK (10件)小遣い2万円のフラッシュデベロッパー。
帰りが遅いのにキレる嫁をだましだまし制作中・・・。
TAKAIW (13件)フラッシュデベロッパー。遊びでゲームを作るのも好きです。外見に似合わないイラストを描くのも好きです。とにかく作るのが好きです。
CHIKATHREESIX (8件)メタル界のフラッシュデベロッパー。またある時はメタルギタリスト。オーサリング中もヘッドバンギングは絶やさない。
YANBOU (6件)犬と猫で、家が毎日運動会のフラッシュデベロッパー。
ビールから発泡酒へ変更で節約中。
AKUZE (2件)2003年からユナイティアに寄生しているフラッシュデベロッパー。
シルクドソレイユとカナダが好き。
DECO-DEKAI (1件)ビートダウンパートでご飯何杯も食べられます。
ハードコア・テクニカルディレクターを目指して日々精進。
![]()
HOME > AIRでSQLiteを使う -アドレスブック-
AIRでSQLiteが使えるということでテストしてみた。
ただテストするとつまらないのでデータベースを使ったアドレスブックを作った。
まずはデータベースとつないで、テーブル作成。
テーブルの「flag」はデリート時に変更し表示上から削除するため。
つまり後で復活できるようにしておく。
■データベースを作成するとき
private var _connection:SQLConnection;
private var _sqlstmt:SQLStatement;
var dbfile:File = File.applicationDirectory.resolvePath("data.db");
this._connection = new SQLConnection();
this._connection.addEventListener(SQLEvent.OPEN, connectOpen);
this._connection.addEventListener(SQLErrorEvent.ERROR, viewError);
this._connection.open(dbfile);
■テーブルを作成するとき
this._sqlstmt = new SQLStatement(); this._sqlstmt.sqlConnection = this._connection; this._sqlstmt.text = "CREATE TABLE IF NOT EXISTS data (no INTEGER PRIMARY KEY, name TEXT, address TEXT, tel TEXT, email TEXT, flag INTEGER)"; this._sqlstmt.addEventListener(SQLEvent.RESULT, viewComp); this._sqlstmt.addEventListener(SQLErrorEvent.ERROR, viewError); this._sqlstmt.execute();
■追加するとき
this._sqlstmt.text = "INSERT INTO data (no, name, address, tel, email, flag) VALUES (@no, @name, @address, @tel, @email, @flag)"; this._sqlstmt.parameters["@no"] = null; this._sqlstmt.parameters["@name"] = this.uname.text; this._sqlstmt.parameters["@address"] = this.address.text; this._sqlstmt.parameters["@tel"] = this.tel.text; this._sqlstmt.parameters["@email"] = this.email.text; this._sqlstmt.parameters["@flag"] = 1; this._sqlstmt.addEventListener(SQLEvent.RESULT, viewComp); this._sqlstmt.addEventListener(SQLErrorEvent.ERROR, viewError); this._sqlstmt.execute();
■削除するとき
※デリートではなく「flag」のアップデートで対応。
this._sqlstmt.text = "UPDATE data SET flag = @flag WHERE no = @no"; this._sqlstmt.parameters["@no"] = dgData.no; this._sqlstmt.parameters["@flag"] = 0; this._sqlstmt.addEventListener(SQLEvent.RESULT, viewComp); this._sqlstmt.addEventListener(SQLErrorEvent.ERROR, viewError); this._sqlstmt.execute();
■更新するとき
this._sqlstmt.text = "UPDATE data SET name = @name, address = @address, tel = @tel, email = @email WHERE no = @no"; this._sqlstmt.parameters["@no"] = dgData.no; this._sqlstmt.parameters["@name"] = dgData.name; this._sqlstmt.parameters["@address"] = dgData.address; this._sqlstmt.parameters["@tel"] = dgData.tel; this._sqlstmt.parameters["@email"] = dgData.email; this._sqlstmt.addEventListener(SQLEvent.RESULT, viewComp); this._sqlstmt.addEventListener(SQLErrorEvent.ERROR, viewError); this._sqlstmt.execute();
■表示するとき
※UIコンポーネントのデータグリッドを使用。
データは「flag」が0でないもので、名前の順で取り出している。
public var dg:DataGrid;
//データ取得
private function getParam(e:MouseEvent = null):void {
this._sqlstmt = new SQLStatement();
this._sqlstmt.sqlConnection = this._connection;
this._sqlstmt.text = "SELECT * FROM data WHERE flag > 0 ORDER BY name DESC";
this._sqlstmt.addEventListener(SQLEvent.RESULT, getComp);
this._sqlstmt.addEventListener(SQLErrorEvent.ERROR, viewError);
this._sqlstmt.execute();
}
//データ表示
private function getComp(e:SQLEvent):void {
var result:SQLResult = this._sqlstmt.getResult();
var records:Array = result.data;
this.dg.editable = true;
this.dg.columns = ["name", "address", "tel", "email"];
this.dg.columns[0].sortable = false;
this.dg.columns[1].sortable = false;
this.dg.columns[2].sortable = false;
this.dg.columns[3].sortable = false;
var dp:DataProvider = new DataProvider(records);
this.dg.dataProvider = dp;
}
AIRでSQLiteを使ってみて、簡単という印象だった。
データベースの確認はFirefoxのアドオン
「Sqlite Manager」を使えばさらに簡単。
できたアプリも公開。

YANBOU犬と猫で、家が毎日運動会のフラッシュデベロッパー。
ビールから発泡酒へ変更で節約中。