AIR App SQLite Datenbank - Coding - Blog - seekwhencer - privates blog

AIR App SQLite Datenbank

Also man will mit der App sicher auch irgendwelche Daten speichern. Schön strukturiert - am besten in einer Datenbank. Und da bringt AIR eine lokale SQLite Datenbank mit. Wunderbar. Schnell noch das Firefox Addon installiert: SQLite Manager und los geht's.

Links das Bild zeigt die GUI im Firefox. Ausgesprochen praktisch und die Teil hat sich aus gemausert. Ich nutze den jetzt seit dem es das Ding gibt.



Man benötigt wie in PHP und MySql eine Connection zur Datenbank:

var DB = {

        conn : 'null',

        init : function(){
            DB.conn = new air.SQLConnection();
            DB.conn.open(air.File.applicationStorageDirectory.resolvePath("database.sqlite"));
        }
}

Das ist die Connection zur Datenbank. In diesem Falle liegt sie als DB.conn vor. Diese Connection benötigen wir später für die Abfragen. Nun haben wir aber nur eine Verbindung, aber noch keine Anweisung.

Als allererstes, wenn die App gestartet wird, sollte ein Mechanismus angestossen werden, der schaut, ob alle Datenbanktabellen vorhanden sind und bei Bedarf einfach welche erstellt. Also kann die DB.init() wie folgt aussehen:

init : function(){
      DB.conn = new air.SQLConnection();
      DB.conn.open(air.File.applicationStorageDirectory.resolvePath("database.sqlite"));
     
     var sql =
                "CREATE TABLE IF NOT EXISTS table (" +
                "    table_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
                "    value TEXT " +
                ")";
     DB.request(sql);
},

Am Ende wird DB.request() aufgerufen. Das ist eine Funktion, die wir ebenso in das DB-Objekt packen:

request : function(sql){
     var Stmt                   = new air.SQLStatement();
     Stmt.sqlConnection    = DB.conn;
     Stmt.text                   = sql;
     Stmt.execute();
},

Am besten bei window.onload den DB.init(); unterbringen. Dann wird eine Datenbank-Verbindung hergestellt und die nötigen Tabellen erzeugt.

Jetzt möchte man sich mal den Inhalt der Datenbank angucken. Dazu im Firefox den installierten SQLite Manager starten (Extras > SQLite Manager) und dann das .sqlite-File öffnen. Wo isses?

C:\Dokumente und Einstellungen\user\Anwendungsdaten\appname\Local Store

So zumindest bei Windows XP. Aber man kann davon die Orte bei Vista und Windows 7 ableiten. Gell?