Herstellen von Verbindungen mit Datenbanken

Adobe AIR 1.0 und höher

Bevor Sie Datenbankoperationen ausführen können, müssen Sie zunächst eine Verbindung zur Datenbankdatei herstellen. Eine SQLConnection -Instanz repräsentiert eine Verbindung mit einer oder mehreren Datenbanken. Die erste Datenbank, die mithilfe einer SQLConnection-Instanz verbunden wird, wird als Hauptdatenbank bezeichnet. Zu dieser Datenbank wird die Verbindung mit der open() -Methode (für synchronen Ausführungsmodus) oder mit der openAsync() -Methode (für asynchronen Ausführungsmodus) hergestellt.

Wenn Sie eine Datenbank mit openAsync() öffnen, registrieren Sie einen Listener für das open -Ereignis der SQLConnection-Instanz, damit Sie benachrichtigt werden, wenn die openAsync() -Operation abgeschlossen ist. Registrieren Sie einen Listener für das error -Ereignis der SQLConnection-Instanz, um festzustellen, wenn die Operation fehlschlägt.

Im folgenden Beispiel wird eine vorhandene Datenbankdatei für die asynchrone Ausführung geöffnet. Die Datenbankdatei heißt „DBSample.db“ und befindet sich im Anwendungsspeicherverzeichnis des Benutzers, siehe Verweisen auf das Anwendungsspeicherverzeichnis .

import flash.data.SQLConnection; 
import flash.data.SQLMode; 
import flash.events.SQLErrorEvent; 
import flash.events.SQLEvent; 
import flash.filesystem.File; 
     
var conn:SQLConnection = new SQLConnection(); 
     
conn.addEventListener(SQLEvent.OPEN, openHandler); 
conn.addEventListener(SQLErrorEvent.ERROR, errorHandler); 
     
// The database file is in the application storage directory 
var folder:File = File.applicationStorageDirectory; 
var dbFile:File = folder.resolvePath("DBSample.db"); 
     
conn.openAsync(dbFile, SQLMode.UPDATE); 
     
function openHandler(event:SQLEvent):void 
{ 
    trace("the database opened successfully"); 
} 
     
function errorHandler(event:SQLErrorEvent):void 
{ 
    trace("Error message:", event.error.message); 
    trace("Details:", event.error.details); 
} 
<?xml version="1.0" encoding="utf-8"?> 
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()"> 
    <mx:Script> 
        <![CDATA[ 
            import flash.data.SQLConnection; 
            import flash.data.SQLMode; 
            import flash.events.SQLErrorEvent; 
            import flash.events.SQLEvent; 
            import flash.filesystem.File; 
             
            private function init():void 
            { 
                var conn:SQLConnection = new SQLConnection(); 
                 
                conn.addEventListener(SQLEvent.OPEN, openHandler); 
                conn.addEventListener(SQLErrorEvent.ERROR, errorHandler); 
                 
                // The database file is in the application storage directory 
                var folder:File = File.applicationStorageDirectory; 
                var dbFile:File = folder.resolvePath("DBSample.db"); 
                 
                conn.openAsync(dbFile, SQLMode.UPDATE); 
            } 
             
            private function openHandler(event:SQLEvent):void 
            { 
                trace("the database opened successfully"); 
            } 
             
            private function errorHandler(event:SQLErrorEvent):void 
            { 
                trace("Error message:", event.error.message); 
                trace("Details:", event.error.details); 
            } 
        ]]> 
    </mx:Script> 
</mx:WindowedApplication>

Im folgenden Beispiel wird eine vorhandene Datenbankdatei für die synchrone Ausführung geöffnet. Die Datenbankdatei heißt „DBSample.db“ und befindet sich im Anwendungsspeicherverzeichnis des Benutzers, siehe Verweisen auf das Anwendungsspeicherverzeichnis .

import flash.data.SQLConnection; 
import flash.data.SQLMode; 
import flash.errors.SQLError; 
import flash.filesystem.File; 
     
var conn:SQLConnection = new SQLConnection(); 
     
// The database file is in the application storage directory 
var folder:File = File.applicationStorageDirectory; 
var dbFile:File = folder.resolvePath("DBSample.db"); 
     
try 
{ 
    conn.open(dbFile, SQLMode.UPDATE); 
    trace("the database opened successfully"); 
} 
catch (error:SQLError) 
{ 
    trace("Error message:", error.message); 
    trace("Details:", error.details); 
} 
<?xml version="1.0" encoding="utf-8"?> 
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()"> 
    <mx:Script> 
        <![CDATA[ 
            import flash.data.SQLConnection; 
            import flash.data.SQLMode; 
            import flash.errors.SQLError; 
            import flash.filesystem.File; 
             
            private function init():void 
            { 
                var conn:SQLConnection = new SQLConnection(); 
                 
                // The database file is in the application storage directory 
                var folder:File = File.applicationStorageDirectory; 
                var dbFile:File = folder.resolvePath("DBSample.db"); 
                 
                try 
                { 
                    conn.open(dbFile, SQLMode.UPDATE); 
                    trace("the database opened successfully"); 
                } 
                catch (error:SQLError) 
                { 
                    trace("Error message:", error.message); 
                    trace("Details:", error.details); 
                } 
            } 
        ]]> 
    </mx:Script> 
</mx:WindowedApplication>

Beachten Sie, dass beim Aufruf der openAsync() -Methode im Beispiel für die asynchrone Ausführung und beim Aufruf der open() -Methode im Beispiel für die synchrone Ausführung das zweite Argument die Konstante SQLMode.UPDATE ist. Wenn Sie SQLMode.UPDATE für den zweiten Parameter ( openMode ) angeben, gibt die Laufzeitumgebung einen Fehler aus, wenn die angegebene Datei nicht vorhanden ist. Wenn Sie SQLMode.CREATE für den openMode übergeben (oder wenn Sie den openMode -Parameter auslassen), versucht die Laufzeitumgebung eine Datenbankdatei zu erstellen, wenn die angegebene Datei nicht vorhanden ist. Wenn die Datei vorhanden ist, wird sie jedoch geöffnet, was der Verwendung von SQLMode.Update entspricht. Sie können auch SQLMode.READ für den openMode -Parameter angeben, um eine vorhandene Datenbank im schreibgeschützten Modus zu öffnen. In diesem Fall können Sie zwar Daten aus der Datenbank abrufen, aber keine Daten hinzufügen, löschen oder ändern.