Adobe Air (wiwobooks.com Release)
einer Datenbankverbindung mithilfe einer SQLConnection -Instanz
2. Erstellen einer File-Instanz für die anzuhängende Datenbank
3. Bei asynchronem Zugriff: Registrieren von Ereignis-Listenern für SQLEvent.ATTACH und SQLErrorEvent.ERROR
4. Aufruf der SQLConnection -Instanzmethode attach()
Stolperfallen/Caveats
Wenn Sie eine Datenbank anzuhängen versuchen, die bereits in der SQLConnection -Instanz geöffnet ist, wird ein Fehler bzw. Fehlerereignis ausgelöst. Sie können jedoch die gleiche Datenbank mehrmals anhängen, solange Sie unterschiedliche Bezeichner verwenden.
So geht es
Nachfolgend wird ein Quelltextausschnitt für das Anhängen der Datenbankdatei myOtherDB.db im Benutzerverzeichnis an die bestehende Datenbankverbindung myDBConnection gezeigt:
import flash.filesystem.File;
import flash.data.SQLConnection;
import flash.events.SQLEvent;
import flash.events.SQLErrorEvent;
var otherDBFile:File = File.userDirectory.resolvePath("myOtherDB.db"); // myDBConn ist bereits geöffnet
myDBConn.addEventListener(SQLEvent.ATTACH, handleDBAttach); myDBConn.addEventListener(SQLErrorEvent.ERROR, handleError); myDBConn.attach("otherDB", otherDBFile);
function handleDBAttach(e:SQLEvent):void {
// Quelltext zum Abruf/Schreiben von Daten aus/in // main.[tabellenname] und/oder otherDB.[tabellenname]
}
function handleError(e:SQLErrorEvent):void { // Fehlerbehandlung
}
Listing 13.16 Beispiel: Datenbank anhängen
13.8.2 Datenbank abhängen
Naheliegenderweise können Sie Datenbanken, die Sie angehängt haben, auch wieder abhängen. Die SQLConnection -Klasse stellt hierfür die Instanzmethode detach() zur Verfügung.
Lösungsweg
1. Abschluss aller Datenbankoperationen, die auf die abzuhängende Datenbank zugreifen
2. Bei asynchronem Zugriff: Registrieren von Ereignis-Listenern für SQLEvent.DETACH und SQLErrorEvent.ERROR
3. Aufruf der SQLConnection -Instanzmethode detach()
So geht es
Der folgende Quelltextausschnitt zeigt das Abhängen der Datenbank otherDB:
// myDBConnection ist geöffnet
myDBConnection.addEventListener(SQLEvent.DETACH, handleDBDetach); myDBConnection.detach("otherDB");
function handleDBDetach(e:SQLEvent):void { trace("Datenbank abgehängt");
}
Listing 13.17 Beispiel: Datenbank abhängen
In AIR können Sie sensible Daten vor unberechtigtem Zugriff schützen, indem Sie sie verschlüsselt abspeichern. Was in AIR schon immer für Dateien galt, ist seit der Version 1.5 auch mit der Datenbank möglich.
14 Daten verschlüsselt speichern
Wenn Sie eine AIR-Anwendung programmieren, die sensible Benutzer- oder Kundendaten sammelt, ist es eine gute Idee, sich Gedanken darüber zu machen, wie Sie diese Daten schützen können. Andererseits bieten die Betriebssysteme selbst bereits Möglichkeiten, den Bereich, in dem die Daten der Anwendung gespeichert werden, nur für den jeweiligen Benutzer der Anwendung zugänglich zu machen. Das ist aber nicht der einzige Aspekt: Wenn Sie z. B. mit Ihrer AIR-Anwendung Geld verdienen möchten, wollen Sie wahrscheinlich eine Lizenznummer für die individuelle Installation Ihrer Anwendung für den konkreten Benutzer abspeichern – oder die notwendigen Daten, eine solche Lizenz abzurufen.
AIR bietet die Möglichkeit, sowohl Daten in einem geschützten Bereich im Dateisystem für eine Anwendung zu speichern als auch lokale Datenbanken zu verschlüsseln. Zur Verschlüsselung der Daten im Dateisystem wird ein 128 Bit starker AES-CBC-Schlüssel verwendet, für die Verschlüsselung einer lokalen Datenbank ein 128-Bit-AES-CCM-Schlüssel. Sie können die Daten Ihrer Anwendung so schützen, dass sie von jedem Benutzer Ihrer Anwendung gelesen werden können, nicht jedoch von anderen AIR-Anwendungen. Dazu gibt die Anwendung einen Schlüssel vor, der idealerweise nicht in die Anwendung hineingeschrieben wird (AIR-Dateien sind entweder, im Fall von HTML-Inhalten, im Klartext sichtbar oder—, m Fall von .swfDateien, dekompilierbar), sondern von einer externen Ressource (z. B. einem Webserver) abgerufen wird. Wenn Sie jedoch die Daten so schützen wollen, dass sie nur der Benutzer Ihrer Anwendung einsehen kann, können Sie den Benutzer ein Kennwort eingeben lassen und dieses als Grundlage der Verschlüsselung verwenden. Sie müssen selbst entscheiden, welche Daten Ihrer Anwendung Sie für besonders schützenswert erachten – AIR bietet auf jeden Fall die Möglichkeit, Ihre Vorstellung umzusetzen.
14.1 Verschlüsselte lokale Dateien
Wie Sie bereits wissen, stellt AIR für die
Weitere Kostenlose Bücher