Voordat u databasebewerkingen kunt uitvoeren, moet u een verbinding met het databasebestand tot stand brengen. Er wordt een
SQLConnection
-instantie gebruikt die een verbinding met een of meer databases vertegenwoordigt. De eerste database waarmee u via een SQLConnection-instantie verbinding maakt, wordt de “hoofd”database genoemd. Met deze database maakt u verbinding via de methode
open()
(voor de synchrone uitvoeringsmodus) of
openAsync()
(voor de asynchrone uitvoeringsmodus).
Als u een database opent via de bewerking
openAsync()
, moet u de gebeurtenis
open
van de SQLConnection-instantie registreren zodat u een melding ontvangt wanneer de bewerking
openAsync()
is voltooid. Deze registratie is nodig als u wilt dat de gebeurtenis
error
van de SQLConnection-instantie controleert of de bewerking is voltooid/mislukt.
In het volgende voorbeeld ziet u hoe u een bestaand databasebestand opent voor asynchrone uitvoering. Het databasebestand heeft de naam "DBSample.db" en bevindt zich in de
De opslagmap van een toepassing aanwijzen
.
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>
In het volgende voorbeeld ziet u hoe u een bestaand databasebestand opent voor synchrone uitvoering. Het databasebestand heeft de naam "DBSample.db" en bevindt zich in de
De opslagmap van een toepassing aanwijzen
van de gebruiker.
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>
Let op: bij het oproepen van de methode
openAsync()
in het asynchrone voorbeeld en het oproepen van de methode
open()
in het synchrone voorbeeld is het tweede argument de constante
SQLMode.UPDATE
. Als u
SQLMode.UPDATE
opgeeft voor de tweede parameter (
openMode
), treedt een fout op als het opgegeven bestand niet bestaat. Als u
SQLMode.CREATE
opgeeft voor de parameter
openMode
(of als u geen waarde opgeeft voor de parameter
openMode
), probeert de runtime een databasebestand te creëren als het opgegeven bestand niet bestaat. Als het bestand echter bestaat, wordt het geopend (vergelijkbaar met het gebruik van
SQLMode.Update
). U kunt ook
SQLMode.READ
opgeven voor de parameter
openMode
als u een bestaande database in alleen-lezen modus wilt openen. In dat geval kunnen gegevens uit de database worden opgehaald maar niet worden toegevoegd, verwijderd of gewijzigd.