viernes, 10 de junio de 2011

Vaciar una tabla de SQLite en un DataGrid con Adobe AIR

Primero necesitamos un componente DataGrid en el escenario y lo nombramos como "datos".
Importamos las clases para manejar la base de datos y creamos el objeto de conexión:

import flash.data.*;
import flash.filesystem.File;
//
var conn:SQLConnection;
//Establecemos la conexión:
openConnection();
//
function openConnection():void {
    var dbFile:File=File.applicationDirectory.resolvePath("libro.db");
    conn = new SQLConnection();
    conn.addEventListener(SQLEvent.OPEN, onDBOpen);
    conn.addEventListener(SQLErrorEvent.ERROR, onDBError);
    conn.openAsync(dbFile);
    //
}
//Hacemos los listeners para los resultados de la conexión:
function onDBOpen(e:SQLEvent):void {
    //
    trace("Se abrio la base de datos en forma exitosa");
    leeTabla();
}
function onDBError(e:SQLErrorEvent):void {
    trace("Error en la base de datos");
}
//Si la conexión fue exitosa, lanzamos le query para leer la tabla con sus respectivos listeners:
function leeTabla():void {
    trace("Lee tabla");
    var query:SQLStatement = new SQLStatement();
    query.sqlConnection=conn;
    var queryText = "SELECT * FROM registro ORDER BY usuario, fecha, hora";
    query.text=queryText;
    query.addEventListener(SQLEvent.RESULT, onSelectResult);
    query.addEventListener(SQLErrorEvent.ERROR, onDBError);
    query.execute();
}
//Finalmente leemos los datos y los vaciamos en el datagrid:
function onSelectResult(e:SQLEvent):void {
    var q:SQLStatement=e.target as SQLStatement;
    var r:SQLResult=q.getResult();
    for each (var o:Object in r.data) {
       datos.addItem(o);
    }
}

No hay comentarios:

Publicar un comentario