Este problema si que me volvio loco, pero no descanse hasta encontrar la manera y despues de buscar y buscar incluso viendo sitios en igles y descifrando su significado...porfin encontre la respuesta y hoy me
AUTORESPONDO.
SQLite como dicen los expertos es un motor de base de datos muy potente para lo ligero que es, ademas que se complementa muy bien con AIR. ya que biene integrado dentro de el, no necesitas instalar nada de nada y ademas es como 2 o 3 veces mas rapido que MySQL, yo ya esta optando por pasarme a MySQL al con encontrar respuestas, pero el blog en ingles de un tio me salvo, no es que SQLite sea incompatible sino que flash puso su propia manera de ingresar a algunos datos dentro de la base de datos. Normalmente en la mayoria de bases de datos bastaba con una sentencia "SHOW TABLES" y te devolvia la lista de todas las tablas.
En AIR para obtener una lista de las tablas dentro de tu base de datos (o el esquema completo) tienes que aser una llamada al metodo
loadSchema() de la clase
SQLConnection y luego recojer los datos en un
SQLSchemaResult llamando para ello al metodo
getSchemaResult().
La clase SQLSchemaResult que nos devuelve la estructura tiene algunas propiedades dentro de la que esta encontramos la propiedad "tables" que es en realidad un Array con la lista de las tablas que tenemos. Finalmente debemos registrarnos al evento
SQLEvent.SCHEMA (si trabajamos de manera asíncrona claro) para poder obtener los datos adecuadamente.
Talves para muchos esta informacion no sea muy interesante, pero creanme que para mi lo fue todo durante 2 dias en los que no pensaba en otra cosa. En fin aki un ejemplo:
Código :
var conn:SQLConnection = new SQLConnection();
conn.addEventListener(SQLEvent.OPEN, openHandler);
conn.addEventListener(SQLErrorEvent.ERROR, errorHandler);
var dbFile:File = File.applicationDirectory.resolvePath("DBSample.db");
conn.openAsync(dbFile);
function openHandler(event:SQLEvent):void {
trace("base de datos abierta");
conn.loadSchema(SQLTableSchema);
conn.addEventListener(SQLEvent.SCHEMA, resultado);
}
function resultado(e:SQLEvent) {
var resul:SQLSchemaResult = conn.getSchemaResult();
for each (var table:SQLTableSchema in resul.tables) {
trace(table.name);
}
}
function errorHandler(event:SQLErrorEvent):void
{
trace("Error message:", event.error.message);
trace("Details:", event.error.details);
}Bueno espero que les sirva. Y pa los que no provaron SQLite animense que esta bien paja!.
------------------------------------------------------------------------------------------------------------------------------