dbを読み込む

作成済みの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
  • AIR for iOS設定」の含めるファイルから作成したDBを設定


  • ライブラリのインポート
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);
}