dbを読み込む
作成済みのdbを読み込む話
- sqliteでdb作成
$ sqlite3 sample.db SQLite version 3.7.7 2011-06-25 16:35:41 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> create table test(id integer, title text); sqlite> insert into test values(1, 'aaa'); sqlite> insert into test values(2, 'bbb'); sqlite> insert into test values(3, 'ccc'); sqlite> .quit
- ライブラリのインポート
import flash.filesystem.*; import flash.data.*; import flash.events.SQLEvent;
- SQLコネクションを作成
var conn:SQLConnection = new SQLConnection(); //インスタンス作成 var db:File = new File("app:/sample.db"); //iPhoneアプリ内に含めたsample.dbをFileクラスを使って参照 conn.openAsync( db ); //データベースに非同期接続
- SQLコネクションの成功失敗時のリスナ関数
conn.addEventListener(SQLEvent.OPEN, selectData); //コネクション生成完了時に呼ばれる conn.addEventListener(SQLErrorEvent.ERROR, onError); //コネクション生成失敗時に呼ばれる
- データの参照
function selectData( event:SQLEvent ):void { var sql:String = "SELECT * FROM test"; //testテーブル全取得 var sqlStat:SQLStatement = new SQLStatement(); //SQLStatementインスタンス作成。SQLを実行するためのクラス sqlStat.sqlConnection = conn; //利用するSQLConnectionオブジェクトを指定 sqlStat.text = sql; sqlStat.addEventListener(SQLEvent.RESULT, showData); //実行が正常に完了したときに呼ばれる sqlStat.addEventListener(SQLErrorEvent.ERROR, onError); sqlStat.execute(); //SQL実行 }
- データの使用
function showData( event:SQLEvent ):void { var result:SQLResult = SQLStatement( event.target ).getResult(); //target属性をSQLStatement型に変換してSQLResultオブジェクトを生成 var str:String = ""; for( var i:int = 0; i<result.data.length; i++ ) { str = result.data[ i ]['id'] + " : " + result.data[ i ]['title']; infoText.appendText(str); infoText.appendText("\n"); } }
import flash.filesystem.*; import flash.data.*; import flash.events.SQLEvent; /*text*/ var infoText:TextField = new TextField(); var format:TextFormat = infoText.getTextFormat(); format.color = 0x000000; format.size = 16; infoText.defaultTextFormat = format; infoText.border = false; infoText.x = 0; infoText.y = 0; infoText.height = stage.stageHeight/2; infoText.width = stage.stageWidth; stage.addChild(infoText); var conn:SQLConnection = new SQLConnection(); var db:File = new File("app:/sample.db"); conn.openAsync( db ); conn.addEventListener(SQLEvent.OPEN, selectData); conn.addEventListener(SQLErrorEvent.ERROR, onError); function selectData( event:SQLEvent ):void { var sql:String = "SELECT * FROM test"; var sqlStat:SQLStatement = new SQLStatement(); sqlStat.sqlConnection = conn; sqlStat.text = sql; sqlStat.addEventListener(SQLEvent.RESULT, showData); sqlStat.addEventListener(SQLErrorEvent.ERROR, onError); sqlStat.execute(); } function showData( event:SQLEvent ):void { var result:SQLResult = SQLStatement( event.target ).getResult(); var str:String = ""; for( var i:int = 0; i<result.data.length; i++ ) { str = result.data[ i ]['id'] + " : " + result.data[ i ]['title']; infoText.appendText(str); infoText.appendText("\n"); } } function onError( event:SQLErrorEvent ):void { infoText.appendText(event.error.message); }