Innan du kan utföra några databasåtgärder måste du först öppna en anslutning till databasfilen. En
SQLConnection
-instans används för att representera en anslutning till en eller flera databaser. Den första databasen som ansluts med en SQLConnection-instans kallas ”huvuddatabasen”. Den här databasen ansluts med metoden
open()
(för synkront körningsläge) eller
openAsync()
(för asynkront körningsläge).
Om du öppnar en databas med den asynkrona åtgärden
openAsync()
, aktiverar du SQLConnection-instansens
open
-händelse så att du vet när åtgärden
openAsync()
har slutförts. Aktivera SQLConnection-instansens
error
-händelse om du vill avgöra om åtgärden misslyckas.
I följande exempel visas hur du öppnar en befintlig databasfil för asynkron körning. Databasfilen heter DBSample.db och finns i användarens
Peka mot programlagringskatalogen
.
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>
I följande exempel visas hur du öppnar en befintlig databasfil för synkron körning. Databasfilen heter DBSample.db och finns i användarens
Peka mot programlagringskatalogen
.
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>
Observera, att i anropet av metoden
openAsync()
i det asynkrona exemplet och i anropet av metoden
open()
i det synkrona exemplet, är det andra argumentet konstanten
SQLMode.UPDATE
. Om du anger
SQLMode.UPDATE
för den andra parametern (
openMode
) skickas ett fel i körningen om den angivna filen inte finns. Om du skickar
SQLMode.CREATE
för parametern
openMode
(eller om du utelämnar parametern
openMode
) görs ett försök att skapa en databasfil i körningen om den angivna filen inte finns. Om filen finns öppnas den emellertid, vilket är detsamma som om du använder
SQLMode.Update
. Du kan också ange
SQLMode.READ
för parametern
openMode
om du vill öppna en befintlig databas i skrivskyddat läge. I så fall kan data hämtas från databasen, men inga data kan läggas till, tas bort eller ändras.