SQLiteを操作するAirアプリケーションを作成する 1(DB接続編)

DBを操作するAirアプリケーションを作成してみる。

MacにはSQLiteがインストールされているので、そのまま使用する

と思ったけどAirは自身がSQLiteを内包しているので特に気にせず扱ってくれる

  1. 下記のコードでidol.mxmlを作成し、接続までのロジックを記述する
    <?xml version="1.0" encoding="utf-8"?>
    <mx:WindowedApplication 
    xmlns:mx="library://ns.adobe.com/flex/mx"
    xmlns:fx="http://ns.adobe.com/mxml/2009"
    creationComplete="init()"
    >
     <fx:Script>
      <![CDATA[
       //ファイルクラスを使う為のインポート
       import flash.filesystem.File;
       //DBファイルの作成や接続をする為のインポート
       import flash.data.SQLConnection;
       
       //コネクションを作成
       private var sqlConn:SQLConnection = new SQLConnection();
    			
       private function init():void {
          //ファイルオブジェクトを作成し、DBファイルを指定
          var file:File = File.applicationStorageDirectory.resolvePath("idol.db");
    
          //例外処理
          try{
             //指定のDBファイルを開く。存在しない場合は作成してくれる。
             sqlConn.openAsync(file);
             successResult();
         }catch(error:Error){
            errorResult(error);
          }
       }
       private function successResult():void{
          trace("ok");
       }
       private function errorResult(error:Error):void{
          trace("error");
       }
       ]]>
     </fx:Script>
    </mx:WindowedApplication>
    
    • creationComplete="init()"は画面の描画が完了したらinit()を実行するという意味。creationComplete以外のイベントについてはここを参照
    • applicationStorageDirectoryはAirアプリケーション内を指し、MacではMacintosh HD/Users/username/Library/Preferences/[AirID]/Local Store/になる。[AirID]はxmlのidで設定するもの
    • 非同期にファイルを開きたい場合はopenAsyncを、同期的に開く場合はopenを使用する。ここを参照
    • 例外処理についてはここを参照。Javaと同じようなもんかなと思ってる
  2. とりあえずこの時点でコンパイルし、エラーが出ない事を確認する