Para que você possa executar qualquer operação de banco de dados, primeiro abra uma conexão com o arquivo de banco de dados. Uma instância de
SQLConnection
é usada para representar uma conexão com um ou mais bancos de dados. O primeiro banco de dados conectado usando uma ocorrência de SQLConnection é chamado de banco de dados "principal". Esse banco de dados é conectado através do método
open()
(para o modo de execução síncrona) ou do método
openAsync()
(para o modo de execução assíncrona).
Se você abrir um banco de dados usando a operação
openAsync()
assíncrona, registre-se para o evento
open
da ocorrência de SQLConnection para saber quando a operação
openAsync()
for concluída. Registre-se para o evento
error
da ocorrência de SQLConnection para determinar se a operação falhou.
O exemplo a seguir mostra como abrir um arquivo de banco de dados existente para execução assíncrona. O arquivo de banco de dados chama-se “DBSample.db” e está localizado no
Apontar para o diretório de armazenamento do aplicativo
do usuário.
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>
O exemplo a seguir mostra como abrir um arquivo de banco de dados existente para execução síncrona. O arquivo de banco de dados chama-se “DBSample.db” e está localizado no
Apontar para o diretório de armazenamento do aplicativo
do usuário.
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>
Observe que, na chamada do método
openAsync()
no exemplo de operação assíncrona e na chamada do método
open()
no exemplo de operação síncrona, o segundo argumento é a constante
SQLMode.UPDATE
. Especificar
SQLMode.UPDATE
para o segundo parâmetro (
openMode
) faz com que o tempo de execução despache um erro se o arquivo especificado não existe. Caso você passe
SQLMode.CREATE
para o parâmetro
openMode
(ou caso deixe o parâmetro
openMode
como off), o tempo de execução tentará criar um arquivo de banco de dados se o arquivo especificado não existir. No entanto, se o arquivo existir, será aberto, o que é o mesmo que usar
SQLMode.Update
. Também é possível especificar
SQLMode.READ
para o parâmetro
openMode
para abrir um banco de dados existente em modo somente leitura. Nesse caso, os dados podem ser recuperados do banco de dados, mas não é possível adicionar, excluir ou alterar nenhum dado.