jueves, 28 de agosto de 2014

CoronaLabs y base de datos Sqlite3

Corona Labs y Sqlite3

Siempre que empiezo una app, nunca la termino! :@
Por eso decidí tener un cliente, que me presionara, que me dijera ¿Y mi app?, ¡Ya la quiero!. Desafortunadamente mi "cliente" no me paga. Pero ya veo mas progreso!, así que, Gracias Cliente!, ya casi termino tu app!.

 Pasando a la aplicación
-El cliente pidió una app de frases.
-Ok, ¿en donde guardo las frases?
-Esta bien fácil!, una base de datos.
-¿Como hago eso?

 Sqlite3 funciona de manera sencilla, es una base de datos sin instalación, ya que corona cuenta con esta base de datos en su repertorio.
 Para poder crear la base de datos, primero mandamos llamar la base de datos.

 require "sqlite3"  

Después creamos un directorio en donde se guardara la base de datos.

 local pathDB = system.pathForFile("data.db", system.DocumentsDirectory)  

El nombre en este caso, es data.db, y el otro parámetro que pasamos contiene el directorio de la aplicación.
Después de tener esto, abrimos la base de datos.

 local db = sqlite3.open(pathDB)  

Ya solo queda crear las tablas. Un ejemplo de creación de tabla y agregar datos, sería.
 local tablesetup = [[CREATE TABLE IF NOT EXISTS ejemplo (id INTEGER PRIMARY KEY autoincrement, ejemplo, );]]  
           db:exec(tablesetup)  
 local insertQuery = [[INSERT INTO ejemplo VALUES (NULL, 'Hola Mundo'); ]]  
                     db:exec( insertQuery )  

Si queremos ver que contiene nuestra base de datos, les recomiendo el plugin de firefox, y si lo quieren ver en consola, les dejo una pequeña función.

 local function showDB()  
      local showDataBase = {}   
      for row in db:nrows("SELECT * FROM ejemplo") do  
      print("Row " .. row.id .. row.ejemplo )  
           showDataBase[#showDataBase +1] =  
           {  
           showDataBase = row.ejemplo  
      }  
      end  
 end  

Espero les sirva de algo, Saludos!




1 comentario: