Buenas, hoy os dejo una pequeña dll que he realizado para conectar con las bases de datos del sistema de google Fusion Tables, que va en la herramienta google docs y que funciona basicamente como un sistema de bases de datos SQL en linea
Viene muy bien para aplicaciones donde interese compartir una base de datos entre todos los usuarios, yo lo uso para interconectar aplicaciones de android.
La dll contiene 3 sencillas funciones:
token = GenerateToken (usuariogoogle, pass)
csv = Query(query, token)
csv = QueryData(query, token)
Por partes, GenerateToken obtiene un valor de autentificación de usuario de google que SOLO ES NECESARIO REALIZAR SI VAMOS A EDITAR LA TABLA. La funcion Query lanza una consulta SQL y recibe el toiken, si la tabla esta marcada como publica se puede mandar un token vacio y funciona bien. La funcion QueryData es similar a la anterior a excepcion de que esta sirve para consultas SQL que editen los datos, por ejemplo alter, insert, update... En este caso si es necesario generar un token valido.
Se puede pedir al usuario hacer login (como en el ejemplo adjunto) o disponer de un dummy account y introducir automaticamente el user y la pass, aunque el sistema de login sea mas correcto.
Los datos retornados vienen en un string en formato CSV. si se desea implementar una funcion que convierta este valor a una tabla del estilo tabla["campo"][1] para obtener los valores, sepodria utilizar un codigo similar a este.
Para realizar consultas SQL es completamente igual que por ejemplo con SQLITE, con algunas excepciones, google ofrece una referencia del uso aqui:
https://developers.google.com/fusiontab ... _reference
En el ejemplo adjunto va una tabla que tenia por ahi con algunos productos y sus codigos de barras para un test de un tpv, la tabla es esta:
https://www.google.com/fusiontables/dat ... Xk12eHHqvo
Por tanto el nombre de la tabla sql es 19zJhQeVuo_t-GH0gNRCXfFmUPsptpXk12eHHqvo y se pueden realizar consultas como SELECT * FROM 19zJhQeVuo_t-GH0gNRCXfFmUPsptpXk12eHHqvo WHERE rowid=3...
Descargar
Viene muy bien para aplicaciones donde interese compartir una base de datos entre todos los usuarios, yo lo uso para interconectar aplicaciones de android.
La dll contiene 3 sencillas funciones:
token = GenerateToken (usuariogoogle, pass)
csv = Query(query, token)
csv = QueryData(query, token)
Por partes, GenerateToken obtiene un valor de autentificación de usuario de google que SOLO ES NECESARIO REALIZAR SI VAMOS A EDITAR LA TABLA. La funcion Query lanza una consulta SQL y recibe el toiken, si la tabla esta marcada como publica se puede mandar un token vacio y funciona bien. La funcion QueryData es similar a la anterior a excepcion de que esta sirve para consultas SQL que editen los datos, por ejemplo alter, insert, update... En este caso si es necesario generar un token valido.
Se puede pedir al usuario hacer login (como en el ejemplo adjunto) o disponer de un dummy account y introducir automaticamente el user y la pass, aunque el sistema de login sea mas correcto.
Los datos retornados vienen en un string en formato CSV. si se desea implementar una funcion que convierta este valor a una tabla del estilo tabla["campo"][1] para obtener los valores, sepodria utilizar un codigo similar a este.
--mytable=csvtotable(dllreturn);
function csvtotable(s)
s = s .. ',' -- ending comma
local t = {} -- table to collect fields
local fieldstart = 1
repeat
-- next field is quoted? (start with `"'?)
if string.find(s, '^"', fieldstart) then
local a, c
local i = fieldstart
repeat
-- find closing quote
a, i, c = string.find(s, '"("?)', i+1)
until c ~= '"' -- quote not followed by quote?
if not i then error('unmatched "') end
local f = string.sub(s, fieldstart+1, i-1)
table.insert(t, (string.gsub(f, '""', '"')))
fieldstart = string.find(s, ',', i) + 1
else -- unquoted; find next comma
local nexti = string.find(s, ',', fieldstart)
table.insert(t, string.sub(s, fieldstart, nexti-1))
fieldstart = nexti + 1
end
until fieldstart > string.len(s)
return t
end
https://developers.google.com/fusiontab ... _reference
En el ejemplo adjunto va una tabla que tenia por ahi con algunos productos y sus codigos de barras para un test de un tpv, la tabla es esta:
https://www.google.com/fusiontables/dat ... Xk12eHHqvo
Por tanto el nombre de la tabla sql es 19zJhQeVuo_t-GH0gNRCXfFmUPsptpXk12eHHqvo y se pueden realizar consultas como SELECT * FROM 19zJhQeVuo_t-GH0gNRCXfFmUPsptpXk12eHHqvo WHERE rowid=3...
Descargar