Foros del Web » Programación para mayores de 30 ;) » Programación móvil »

Flash Bulider y SQLlite

Estas en el tema de Flash Bulider y SQLlite en el foro de Programación móvil en Foros del Web. Hola a todos los foreros. Hoy pido su ayuda pues estoy empeñado en aprender a programar para Iphone con Flash Builder, sin embargo tengo un ...
  #1 (permalink)  
Antiguo 19/01/2012, 14:15
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Flash Bulider y SQLlite

Hola a todos los foreros.
Hoy pido su ayuda pues estoy empeñado en aprender a programar para Iphone con Flash Builder, sin embargo tengo un problema que me tiene pegadisimo; lo que sucede es que intento conectarme a una base de datos de SQlLite; me conecto y trabajo bien con los datos pero cuando genero el IPA para instalarlo en al teléfono no importa la base de datos, yo he dado la orden de buscar la base de datos y la tabla y si no existe la creo, siempre la crea y entiendo que no esta. mi pregunta concreta es si alguien sabe la ruta o donde o como direccionar la base de datos para poder accederla desde el teléfono.
Trabajo con Flash Builder 4.6 en Windows 7, la aplicación intento hacerla para Iphone 4.

De esta forma me conecto a la base de datos:

sqlConnection = new SQLConnection();
sqlConnection.open(File.applicationStorageDirector y.resolvePath("basedatos.db"));
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = "CREATE TABLE IF NOT EXISTS giberish (campo TEXT)";
stmt.execute();

Gracias por la colaboración que me puedan prestar.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #2 (permalink)  
Antiguo 23/01/2012, 06:54
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Flash Bulider y SQLlite

Upssss, ninguna respuesta??
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #3 (permalink)  
Antiguo 23/01/2012, 23:46
Avatar de Hazek  
Fecha de Ingreso: julio-2002
Ubicación: En mi casa :D ó ?
Mensajes: 418
Antigüedad: 21 años, 9 meses
Puntos: 3
Respuesta: Flash Bulider y SQLlite

Cita:
Iniciado por acumulador Ver Mensaje
Hola a todos los foreros.
Hoy pido su ayuda pues estoy empeñado en aprender a programar para Iphone con Flash Builder, sin embargo tengo un problema que me tiene pegadisimo; lo que sucede es que intento conectarme a una base de datos de SQlLite; me conecto y trabajo bien con los datos pero cuando genero el IPA para instalarlo en al teléfono no importa la base de datos, yo he dado la orden de buscar la base de datos y la tabla y si no existe la creo, siempre la crea y entiendo que no esta. mi pregunta concreta es si alguien sabe la ruta o donde o como direccionar la base de datos para poder accederla desde el teléfono.
Trabajo con Flash Builder 4.6 en Windows 7, la aplicación intento hacerla para Iphone 4.

De esta forma me conecto a la base de datos:

sqlConnection = new SQLConnection();
sqlConnection.open(File.applicationStorageDirector y.resolvePath("basedatos.db"));
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = "CREATE TABLE IF NOT EXISTS giberish (campo TEXT)";
stmt.execute();

Gracias por la colaboración que me puedan prestar.

Cuando dices que no te importa la base de datos, ¿te refieres a cargar en tu teléfono los datos que tienes en una BD de tu computadora??

EDIT --
Bueno como veo que ya tienes unos días que publicaste tu pregunta, me adelanto a lo que me puedas contestar suponiendo que tienes el problema que menciono.

Primero copia la base de datos (.db) a tu directorio "src -> data" de tu proyecto por ejemplo.

Por medio de un código simple te "plancharas" la BD del "application Storage Directory" (ASD) por la que tienes en "src -> data -> *.db)". El siguiente código deberás ejecutarlo cada vez que desees cargar tu "backUp" que tienes en la carpeta de tu directorio, ten en cuenta que la BD que puedas llegar a tener en tu dispositivo será sobre escrita por la que tengas en tu directorio "DATA" de tu proyecto:

var miBD:File = new File("app:/data/baseDatos.db");
var rutaBD:File = File.applicationStorageDirectory.resolvePath("base Datos.db");
miBD.copyTo(rutaBD, true);


"app:/data/baseDatos.bd" es la carpeta que esta en tu proyecto (directorio "src -> data -> *.db")

Por cierto, parece que si lanzas la aplicación en Windows obtendrás un error #3012 por que no te será posible sobre escribir el archivo si la aplicación de encuentra corriendo, sin embargo desplegando la aplicación en el terminal (iphone) parece no haber ningún problema, aunque claro puedes crear una lógica mas inteligente, lo cual no es muy difícil ;).

Saludos!!
__________________
Tecnologias: Flash Platform, Java (Spring, HB, Struts, Grails), iOS, Android, JavaScript, PHP, SQL (MySQL, Oracle), Prolog, Assembler (PIC's) y Arduino - Electronica.

Última edición por Hazek; 24/01/2012 a las 02:00
  #4 (permalink)  
Antiguo 24/01/2012, 07:22
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Flash Bulider y SQLlite

var miBD:File = new File("app:/data/baseDatos.db");
var rutaBD:File = File.applicationStorageDirectory.resolvePath("base Datos.db");
miBD.copyTo(rutaBD, true);

Muchas gracias por tu respuesta, ahora mismo lo pruebo.
Me queda una pregunta:
Al hacer copy sobre escribirá la base de datos siempre??
Como valido para que haga el miBD.copyTo(rutaBD, true) solo la primera vez??

De antemano te agradezco mucho la colaboración.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #5 (permalink)  
Antiguo 24/01/2012, 11:35
Avatar de Hazek  
Fecha de Ingreso: julio-2002
Ubicación: En mi casa :D ó ?
Mensajes: 418
Antigüedad: 21 años, 9 meses
Puntos: 3
Respuesta: Flash Bulider y SQLlite

Cita:
Iniciado por acumulador Ver Mensaje
var miBD:File = new File("app:/data/baseDatos.db");
var rutaBD:File = File.applicationStorageDirectory.resolvePath("base Datos.db");
miBD.copyTo(rutaBD, true);

Muchas gracias por tu respuesta, ahora mismo lo pruebo.
Me queda una pregunta:
Al hacer copy sobre escribirá la base de datos siempre??
Como valido para que haga el miBD.copyTo(rutaBD, true) solo la primera vez??

De antemano te agradezco mucho la colaboración.
Bueno una forma que se me ocurre es hacer una consulta al inicio sobre la tabla, si hay 0 registros o si no existe X registro entonces sobre escribes la tabla, si hay por lo menos 1 registro o existe X registro la dejas como ya esta.

Saludos ;)
__________________
Tecnologias: Flash Platform, Java (Spring, HB, Struts, Grails), iOS, Android, JavaScript, PHP, SQL (MySQL, Oracle), Prolog, Assembler (PIC's) y Arduino - Electronica.
  #6 (permalink)  
Antiguo 24/01/2012, 13:34
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Flash Bulider y SQLlite

Si no es mucho inconveniente me puede explicar como valido si existe o no la base de datos por qle verdad como dije anteriormente en AS3 soy muy nuevo; de C# se que se hace con fileExist pero en AS3 estoy muy perdido.
Muchas gracias por tu ayuda, en verdad te lo agradezco.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #7 (permalink)  
Antiguo 08/02/2012, 13:55
Avatar de Hazek  
Fecha de Ingreso: julio-2002
Ubicación: En mi casa :D ó ?
Mensajes: 418
Antigüedad: 21 años, 9 meses
Puntos: 3
Sonrisa Respuesta: Flash Bulider y SQLlite

Una disculpa! Estuve un tiempo ausente pero ya estoy de regreso.
Quiza ya sea algo tarde, pero si aun tienes problema lo puedes hacer con un query sencillo:
__________________________________________________ _____________

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name'
__________________________________________________ _____________

donde logicamente 'table_name' seria el nombre de tu tabla, si no obtienes ningun resultado sabras que la tabla no existe. Saludos!
__________________
Tecnologias: Flash Platform, Java (Spring, HB, Struts, Grails), iOS, Android, JavaScript, PHP, SQL (MySQL, Oracle), Prolog, Assembler (PIC's) y Arduino - Electronica.
  #8 (permalink)  
Antiguo 08/02/2012, 17:39
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Flash Bulider y SQLlite

Muchas gracias, en un rato lo pruebo y te cuento!!
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #9 (permalink)  
Antiguo 09/02/2012, 09:27
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Flash Bulider y SQLlite

Cita:
Iniciado por Hazek Ver Mensaje
Una disculpa! Estuve un tiempo ausente pero ya estoy de regreso.
Quiza ya sea algo tarde, pero si aun tienes problema lo puedes hacer con un query sencillo:
__________________________________________________ _____________

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name'
__________________________________________________ _____________

donde logicamente 'table_name' seria el nombre de tu tabla, si no obtienes ningun resultado sabras que la tabla no existe. Saludos!
Muchas gracias por tu respuesta pero ahora tengo un problema para probar tu codigo de ayuda es que no se como valido si hay o no resultados en el Query, me disculpo por la pregunta tan tonta pero la verdad como ya dije estoy muy novato en estos lares de FlashBuilder. Aprovecho ademas para `preguntarte como obtengo el valor de un getResult; es decir como muestro en una lista solo un nombre o un campo especifico?? por ejemplo:

listica.dataProvider = new ArrayCollection(stmt.getResult().data);
Intente con: listica.dataProvider = new ArrayCollection(stmt.getResult().data.nombre); pero no me funciono, entendiendo claro que "nombre" es un campo de mi tabla. Si me puedes colaborar con esto también te lo agradezco.

De antemano muchas pero muchas gracias por tu colaboración.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #10 (permalink)  
Antiguo 12/02/2012, 11:14
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Flash Bulider y SQLlite

Espero alguien me ayude, ya casi termino este cometido!!
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #11 (permalink)  
Antiguo 12/02/2012, 11:21
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Flash Bulider y SQLlite

Cita:
Iniciado por acumulador Ver Mensaje
Muchas gracias por tu respuesta pero ahora tengo un problema para probar tu codigo de ayuda es que no se como valido si hay o no resultados en el Query, me disculpo por la pregunta tan tonta pero la verdad como ya dije estoy muy novato en estos lares de FlashBuilder. Aprovecho ademas para `preguntarte como obtengo el valor de un getResult; es decir como muestro en una lista solo un nombre o un campo especifico?? por ejemplo:

listica.dataProvider = new ArrayCollection(stmt.getResult().data);
Intente con: listica.dataProvider = new ArrayCollection(stmt.getResult().data.nombre); pero no me funciono, entendiendo claro que "nombre" es un campo de mi tabla. Si me puedes colaborar con esto también te lo agradezco.

De antemano muchas pero muchas gracias por tu colaboración.
Lo que sucede es que en la lista donde debieran salir los datos de la consulta me sale solo object Object, por eso requiero saber como taladrar hasta el campo de mi consulta en este caso "nombre". De antemano muchas gracias por la ayuda que me puedan prestar.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #12 (permalink)  
Antiguo 12/02/2012, 20:54
Avatar de Hazek  
Fecha de Ingreso: julio-2002
Ubicación: En mi casa :D ó ?
Mensajes: 418
Antigüedad: 21 años, 9 meses
Puntos: 3
Respuesta: Flash Bulider y SQLlite

Cita:
Iniciado por acumulador Ver Mensaje
Lo que sucede es que en la lista donde debieran salir los datos de la consulta me sale solo object Object, por eso requiero saber como taladrar hasta el campo de mi consulta en este caso "nombre". De antemano muchas gracias por la ayuda que me puedan prestar.
Esto es por la propiedad "data" del metodo getResult() devuelve un Array.
Si tu consulta te devuelve por ejemplo 5 filas de resultados y tienes el campo "nombre" y edad", 'getResult()' te devolvera un arreglo de 5 objetos, cada objeto con las propiedades "nombre" y "edad", esto seria equivalente a definir algo como:

miArreglo[0] = new Object({nombre:'David',edad:25});

Poniendote un codigo ejemplo, puedes iterar el objeto dentro del array dinamicamente asi:

var resultados:Array = stmt.getResult().data;
var salidaXfila:String = "";

for(var i:int =0; i < resultados.length; i++) {
for each(var valorPropiedad:* in resultados[i]){
salidaXfila += valorPropiedad + " ";
}
trace(salidaXfila);
salidaXfila = "";

}

Recuerda que si estas en FlashBuilder, para que trace() se muestre, deberas correr la aplicacion en modo debug.
Espero te funcione, seguimos en contacto
Saludos!!
__________________
Tecnologias: Flash Platform, Java (Spring, HB, Struts, Grails), iOS, Android, JavaScript, PHP, SQL (MySQL, Oracle), Prolog, Assembler (PIC's) y Arduino - Electronica.

Última edición por Hazek; 12/02/2012 a las 21:07
  #13 (permalink)  
Antiguo 13/02/2012, 06:23
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Flash Bulider y SQLlite

Muchas gracias Hazek, por fin ya prove y me trabaja bien, pero sigo con el problema de la base de datos que mencionaba en los primeros mensajes, es sobre que al inicio no me copia la base de datos. tu me ayudaste con un código que hace copy, pero me preguntaba como hacerlo solo la primera vez por que si no siempre me sobreescribira los valores de la tabla y no tendre los datos nuevos.
Espero me puedas ayudar, de antemano muchas gracias por la ayuda que me puedas prestar.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #14 (permalink)  
Antiguo 20/02/2012, 14:24
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Flash Bulider y SQLlite

Por favor ayuda, ya casi termino solo me falta poquito pero requiero salir del hueco donde quede!!
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...

Etiquetas: flash, sql, sqllite
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:42.