SQLiteって、日本語で呼ぶとき困りませんか?エスキューエルライトなのかエスキューライトなのか。それはさておき、、、AIRでSQLite接続するアプリを開発していると、アプリケーションから作成したテーブルの中身を見たくなることがあります。そのやりかたはいくつかあるのですが、、、

  • ODBC経由で接続しAccessなどで参照する。
  • SQLiteManagerを使う。
  • etc…

ODBC経由で接続するにはドライバが必要になります。ドライバのダウンロードはSQLite ODBC Driverからできるのですが、sqliteodbc.exeをダウンロードして、ドライバをインストールして、データソースを作成して、Accessでインポート設定して、ちょっとめんどくさいです。

次にSQLiteManagerを使う方法です。SQLiteManagerとはPHP4ベースのWebアプリケーションです(サイト上にはPHP5でも動くとありますが)。
SourceForge.net: SQLiteManager

使い勝手もなかなか良いようですが、やっぱりそれなりに設定が必要です。まず、PHPが動く環境がないとだめですね。xamppをインストールしますか?もともと環境が整っていればいいですが、わざわざこのためだけにやるのもねぇ。

サクッと使うにはこれ。
SQLite Manager :: Firefox Add-ons

同じような名前ですが、Firefoxのアドオンツールです。例のごとく、Firefoxにインストールすればすぐに使えます。

以下のようなコードを書いていたとすると、、、

  public function initTest():void {
   var file:File = File.applicationStorageDirectory.resolvePath("test.db");
   var str:String = "CREATE TABLE IF NOT EXISTS test (" +
    "id INTEGER PRIMARY KEY, " +
    "original VARCHAR(10));"

   _connection = new ConnectionManager();
   _connection.initConnection(file);
   _connection.execute(str, iniTestHandler)
  }

  private function getRecord():void {
   _connection.execute(
    "SELECT * FROM test " +
    "ORDER BY id desc;",
    selectHandler);
  }

  private function setRecord():void {
   _connection.execute(
    "INSERT INTO test " +
    "(original) VALUES ('test');");
   getRecord();
  }

  private function initTestHandler(event:SQLEvent):void {
   setRecord();
  }

testテーブルがtest.dbというファイルに出力されます。test.dbファイルの出力先はapplicationStorageDirectoryで指定しています。

applicationStorageDirectory:File [読み取り-専用]

アプリケーションのプライベート記憶領域ディレクトリです。

それぞれの AIR アプリケーションは、永続的な固有のアプリケーション記憶領域ディレクトリを持っています。このディレクトリは、File.applicationStorageDirectory に初めてアクセスしたときに作成されます。このディレクトリは、アプリケーション固有のデータを格納するために利用されます。

AIR アプリケーションをアンインストールする場合、アンインストーラではアプリケーション記憶領域ディレクトリに保存されたファイルは削除されません。

このオブジェクトの url プロパティは、app-storage URL スキーム (file URL スキームではない) を使用します。したがって、url ストリングの指定は “app-storage:” (“file:” ではない) で始めます。また、applicationStoreDirectory ディレクトリを基準とする相対位置に (resolvePath() メソッドを使用して) File オブジェクトを作成すると、その File オブジェクトの url でも app-storage URL スキームが使用されます (例を参照)。

File – ActionScript 3.0 言語およびコンポーネントリファレンスガイドより引用。

VistaではC:Usersユーザ名AppDataRoamingアプリケーション名Local Store、XPではC:Documents and Settingsユーザ名Application Dataアプリケーション名Local Storeに出力されます。

このtest.dbファイルをSQLite Managerから開くとFirefoxでDBの中身が見れるようになります。まず「ツール」→「SQLite Manager」を選びます。

SQLite Managerの「Database」→「Connect Database」を選び、先程のtest.dbファイルを選択すると

この通り、AIRアプリから作成したSQLiteのテーブルを操作できるようになります。

いろいろ調べているうちに、こんなのもありました。
TkSQLite – mynote
※ とのさまのお勧めです。

zipファイルをダウンロードして解凍すればすぐ使えます。どちらもあまり使い込んではいませんがパッと見、こっちのほうが使いやすそうですね。

関連記事

Trackback URL