Conexão com um banco de dados

Adobe AIR 1.0 e posterior

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.