Zanim możliwe będzie wykonanie jakichkolwiek operacji bazy danych najpierw należy nawiązać połączenie z plikiem bazy danych. Instancja klasy
SQLConnection
służy do reprezentowania połączenia z jedną lub większą liczbą baz danych. Pierwsza baza danych, która zostanie połączona za pomocą instancji SQLConnection, jest określana jako „główna” baza danych. Ta baza danych zostanie połączona za pomocą metody
open()
(dla trybu wykonywania synchronicznego) lub za pomocą metody
openAsync()
(dla trybu wykonywania asynchronicznego).
Jeśli baza danych zostanie otwarta za pomocą asynchronicznej operacji
openAsync()
, należy dokonać rejestracji dla zdarzenia
open
instancji SQLConnection w celu określenia czasu zakończenia operacji
openAsync()
. W celu ustalenia, czy operacja się nie powiodła, należy dokonać rejestracji zdarzenia
error
instancji SQLConnection.
Poniższy przykład prezentuje sposób otwierania istniejącego pliku bazy danych dla wykonywania asynchronicznego. Plik bazy danych ma nazwę „DBSample.db” i znajduje się w
Wskazywanie na katalog zapisu aplikacji
użytkownika.
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>
W poniższym przykładzie przedstawiono sposób otwierania istniejącego pliku bazy danych w przypadku wykonywania synchronicznego. Plik bazy danych ma nazwę „DBSample.db” i znajduje się w
Wskazywanie na katalog zapisu aplikacji
użytkownika.
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>
W wywołaniu metody
openAsync()
w przykładzie wykonania asynchronicznego oraz w wywołaniu metody
open()
w przykładzie wykonania synchronicznego drugi argument jest stałą
SQLMode.UPDATE
. Określenie stałej
SQLMode.UPDATE
dla drugiego parametru (
openMode
) powoduje, że środowisko wykonawcze wywołuje błąd, jeśli określony plik nie istnieje. Jeśli stała
SQLMode.CREATE
zostanie przekazana dla parametru
openMode
(lub jeśli parametr
openMode
pozostanie wyłączony), wówczas środowisko wykonawcze podejmie próbę utworzenia pliku bazy danych, pod warunkiem że określony plik nie istnieje. Jeśli jednak plik istnieje, to zostanie otwarty, tak jak gdyby została użyta metoda
SQLMode.Update
. Możliwe jest również wybranie stałej
SQLMode.READ
dla parametru
openMode
w celu otwarcia istniejącej bazy danych w trybie tylko do odczytu. W takim przypadku dane można pobrać z bazy danych, ale nie można ich dodawać, usuwać ani zmieniać.