Conexión a una base de datos

Adobe AIR 1.0 y posterior

Antes de que pueda realizar cualquier operación en la base de datos, primero abra una conexión al archivo de la base de datos. Se usa una instancia de SQLConnection para representar una conexión a una o varias bases de datos. La primera base de datos que se conecta usando una instancia SQLConnection se denomina la base de datos “principal”. Esta base de datos se conecta usando el método open() (para el modo de ejecución sincrónico) o el método openAsync() (para el modo de ejecución asíncrono).

Si abre una base de datos usando la operación asíncrona openAsync() , se debe registrar para el evento open de la instancia SQLConnection para saber cuándo se completa la operación openAsync() . Regístrese para el evento error de la instancia SQLConnection para determinar si la operación falla.

En el siguiente ejemplo se muestra cómo abrir un archivo de base de datos existente para la ejecución asíncrona. El archivo de la base de datos se denomina “DBSample.db” y se encuentra en el Apuntar al directorio de almacenamiento de la aplicación .

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>

En el siguiente ejemplo se muestra cómo abrir un archivo de base de datos existente para la ejecución sincrónica. El archivo de la base de datos se denomina “DBSample.db” y se encuentra en el Apuntar al directorio de almacenamiento de la aplicación .

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 en la llamada del método openAsync() en el ejemplo asíncrono y en la llamada del método open() en el ejemplo sincrónico, el segundo argumento es la constante SQLMode.UPDATE . La especificación de SQLMode.UPDATE para el segundo parámetro ( openMode ) hace que el motor de ejecución distribuya un error si el archivo especificado no existe. Si pasa un valor SQLMode.CREATE para el parámetro openMode (o si desactiva el parámetro openMode ), el motor de ejecución intenta crear un archivo de base de datos si el archivo especial no existe. No obstante, si el archivo existe está abierto, que es lo mismo que utilizar SQLMode.Update . Asimismo puede especificar SQLMode.READ para el parámetro openMode para abrir una base de datos existente en el modo de solo lectura. En ese caso, se pueden recuperar los datos de la base de datos pero no se pueden añadir, eliminar ni cambiar datos.