Bücher online kostenlos Kostenlos Online Lesen
Adobe Air (wiwobooks.com Release)

Adobe Air (wiwobooks.com Release)

Titel: Adobe Air (wiwobooks.com Release) Kostenlos Bücher Online Lesen
Autoren:
Vom Netzwerk:
ausgelöst, nachdem Schemainformationen aus der Datenbank ausgelesen wurden
    wird bei einem Fehler während einer Datenbankoperation ausgelöst
Tabelle 13.2 Ereignisse bei Datenbankoperationen
Tipp: Besonderheiten
    Beim Zugriff auf die Datenbank ergibt sich eine besondere Herausforderung im Umgang mit den ausgelösten Ereignissen aus dem Umstand, dass viele unterschiedliche Vorgänge und Operationen mit den gleichen ActionScript-Klassen durchgeführt werden. Das trifft insbesondere auf die vielen verschiedenen Abfragen zu, die mithilfe SQLStatement -Instanzen durchgeführt werden. Achten Sie also darauf, dass Sie unterschiedliche Abfragen sauber voneinander trennen und die Ereignis-Listener entfernen, wenn sie nicht mehr gebraucht werden – das spart auch Ressourcen Ihrer Anwendung.
13.4 Datenbank erstellen und modifizieren
    Eine SQLite-Datenbank zur Verwendung in Ihrer Anwendung wird mithilfe einer SQLConnection - und einer File -Instanz erstellt. Zuerst verweisen Sie mit der File -Instanz auf die gewünschte Datenbankdatei (diese muss, abhängig vom Parameter openMode beim Öffnen der Datenbank, nicht vorhanden sein), dann übergeben Sie diese der open() - oder openAsync() -Methode der SQLConnection - Instanz.
13.4.1 Neue Datenbank erstellen
    Während das synchrone Öffnen einer SQLConnection -Instanz wie üblich innerhalb eines try -Blocks geschieht, sind asynchrone Datenbankoperationen auf Ereignis-Listener angewiesen.
    Lösungsweg
1. Erstellen einer File -Instanz für die Datenbankdatei
2. Erstellen einer SQLConnection -Instanz
    3. Bei asynchronem Zugriff: Registrieren von SQLErrorEvent.ERROR - und SQLEvent.OPEN -Ereignis-Listenern
4. Aufruf der Methode open() bzw. openAsync() für synchronen bzw. asynchronen Zugriff auf die Datenbank. openMode -Parameter:
    SQLMode.CREATE (Standardeinstellung)
Öffnen für Schreibzugriff; Datenbankdatei wird erstellt, wenn nicht vorhanden.
SQLMode.READ
Nur lesen; führt zu Fehler, wenn Datei nicht vorhanden.
SQLMode.UPDATE
Ö ffnen für Schreibzugriff; führt zu Fehler, wenn Datei nicht vorhanden. 5. Fehlerbehandlung
    bei synchronem Zugriff in catch -Block
bei synchronem Zugriff in SQLErrorEvent.ERROR -Ereignis-Listener
    6. Weitere Befehle in try -Block (synchron) bzw . SQLEvent.OPEN -Ereignis-Listener (asynchron)
Stolperfallen/Caveats
    Beachten Sie, dass Sie aus Ihrer Anwendung heraus keine Schreibrechte für das Anwendungsverzeichnis haben. Stellen Sie also sicher, dass Sie die Datei in einem Verzeichnis zu erstellen versuchen, auf das der Benutzer Schreibzugriff hat. Dafür bietet sich z. B. das Anwendungs-Dokumentenverzeichnis an ( applicationStorageDirectory ).
    So geht es
    Die folgende Flex-basierte Beispielanwendung stellt eine Verbindung zu einer Datenbankdatei myDB.db im Anwendungs-Dokumentenverzeichnis her und erstellt diese, falls sie nicht vorhanden ist:
    

    
private var myDBFile:File;
private var myDBConn:SQLConnection = new SQLConnection();
    private function init():void {
myDBFile = File.applicationStorageDirectory. resolvePath("myDB.db");
    myDBConn.addEventListener(SQLErrorEvent.ERROR, handleDBError);
myDBConn.addEventListener(SQLEvent.OPEN, handleDBOpen); myDBConn.openAsync(myDBFile);
    }
    private function handleDBOpen(e:SQLEvent):void { taStatus.text = "Datenbank geöffnet.";
}
taStatus.text += "\nFehlerdetails:\n" + e.error.details;
}
]]>



    private function handleDBError(e:SQLErrorEvent):void { taStatus.text += "Fehler bei Zugriff auf Datenbank:\n" + e.text;
    Listing 13.1 Beispiel: asynchrones Öffnen einer Datenbankdatei
13.4.2 Datenbanktabellen erstellen
    Sobald Sie eine offene Verbindung mit Schreibzugriff ( SQLMode.CREATE oder SQLMode.UPDATE ) zu einer Datenbankdatei haben, können Sie in dieser Datenbank Tabellen erstellen. Hierzu wird ein SQL-Statement CREATE TABLE verwendet.
    Lösungsweg
1. Erstellen einer SQLStatement -Instanz
    2. Zuweisen der Datenbankverbindung zur Eigenschaft sqlConnection der SQLStatement -Instanz
3. Zuweisen des SQL-Statements als Zeichenkette zur Eigenschaft text der SQLStatement -Instanz
4. Asynchroner Zugriff: Registrieren von Ereignis-Listenern für SQLErrorEvent.ERRORund SQLEvent.RESULT
5. Aufruf der Instanzmethode execute()
So geht es
    Das folgende Beispiel

Weitere Kostenlose Bücher