GearsSQL es una clase javascript que nos facilitará el uso de la base de datos local, basicamente se trata de una versión en javascript de la famosa ezSQL de Justin Vincent.
Por motivos de seguridad, Google Gears trata de forma interna los datos que le pasamos a nuestras consultas a base de datos, por ello nuestro SQL se verá un poco modificado al estandard.
//SQL
"insert into table (id, nombre, edad) values (1,'andres',27);"
//Google Gears SQL
"insert into table (?,?,?);",[1,"andres",27]
Como vemos en el ejemplo, debemos pasarle un array con los datos en el mismo orden en el que aparecen los (?) y Google Gears, reemplazará los valores tras pasarles una buena tanda de comprobaciones, con fin de mejorar la seguridad.
Este sistema es opcional, ya que podemos usar el atnterior, pero se recomienda su uso en cualquier caso.
La clase se compone de una serie de métodos con los cuales podremos hacer consultas a la base de datos local, y obtener los datos que en ella hayamos insertado.
init() se encarga de iniciar el servicio y la conexión con la base de datos name. El nombre de la base de datos corresponde al recipiente de tablas en las que tenemos nuestros datos
Gears.init("myBaseDeDatos");
query() es un método que nos permite realizar una consulta a nuestra base de datos y ella misma comprobará si se trata de una consulta o de cualquier otra acción a la base de datos. Para más información leer get_results();
Gears.query("DROP TABLE personas;");
Probar
Con get_results() obtendremos un array con todas las filas involucradas en nuestra consulta, para ello tendremos que lanzar una cosulta SQL y pasarle de forma opcional los arguments de dicha consulta.
Gears.get_results("SELECT * FROM tabla WHERE campo=?",["valor"]);
Probar
get_row() funciona de igual forma que get_results() salvo que como resultados solo devolverá un array con la fila involucrada, por lo tanto será usada para consultas concretas a una línea de la base de datos.
Gears.get_row("SELECT * FROM tabla WHERE camposID=?",["idUnico"]);
Probar
get_var() nos permite concretar más y llegar a obtener un valor concreto de una consulta devolviendolo en una variable.
var dato = Gears.get_var("SELECT nombre FROM tabla WHERE campoID=?",["idUnico"]);
Probar
last_id() nos devuelve el valor del ultimo ID insertado de una tabla, en caso de no haberse insertado nada durante la sessión devolverá 0.
var last_id = GearsSQL.last_id();
//Iniciamos session
GearsSQL.init('myDB');
//Creamos la base de datos
GearsSQL.query("create table if not exists personas (nombre varchar(150), telefono varchar(200), datecreated int, PRIMARY KEY(datecreated))");
//insertamos datos
GearsSQL.query("insert into personas values (?, ?,?);",["andres", "123456789", new Date().getTime()]);
GearsSQL.query("insert into personas values (?, ?,?);",["juan", "987654321", new Date().getTime()]);
/* LEEMOS datos */
//get_results
var res1 = GearsSQL.get_results("SELECT * FROM personas");
alert("RES2: " +res1);
//get_row
var res2 = GearsSQL.get_row("SELECT * FROM personas WHERE nombre = ?;", ["andres"]);
alert("RES: " +res2);
//get_var
var res3 = GearsSQL.get_var("SELECT nombre FROM personas WHERE telefono = ?",["971269259"]);
alert("RES3: " +res3);