SQLiteを操作するAirアプリケーションを作成する 1(DB接続編)
DBを操作するAirアプリケーションを作成してみる。
MacにはSQLiteがインストールされているので、そのまま使用する
と思ったけどAirは自身がSQLiteを内包しているので特に気にせず扱ってくれる
- 下記のコードで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と同じようなもんかなと思ってる
- とりあえずこの時点でコンパイルし、エラーが出ない事を確認する