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.