Acompanhando a lista de discussão do google gadget developer, vi um assunto bem interessante hoje, sobre a integração do sqlite com o google gadget, ou seja como colocar um mini banco de dados dentro do google gadget …
o codigo referenciado do blog de desenvolvimento do google, eh simples, mas foi necessario remexer nos comentarios do post para poder colocar as pecas juntas e funcionando. O que fiz basicamente eh um gadget que grava um valor no banco em memoria, e apos isto joga este valor numa label de forma a representar tanto a gravação quanto a leitura de dados.
vamos ver o codigo por partes
este trecho é o método que esta assinalado para ser executado quando da abertura do gadget
function view_onOpen() {
Aqui a dll do acesso banco é lida
var sqliteDLL = storage.extract(“sqlite3.dll”);
A DLL lida eh registrada manualmente
var wshShell = new ActiveXObject(“WScript.Shell”);
wshShell.run(“regsvr32 /s \”"+sqliteDLL+”\”", 0, true);
Cria o objeto baseado no activeX registrado
var sqlite = new ActiveXObject(“LiteX.LiteConnection”);
escreve uma linha no debug do google gadget
debug.trace(‘SQLite3 version: ‘ + sqlite.version(true) );
Abre em memória o banco de dados
sqlite.open(“:memory:”);
Cria a tabela e adiciona dados
sqlite.execute(“CREATE TABLE Test(a);”);
sqlite.execute(“INSERT INTO test VALUES (4);”);
Executa a consulta
var statement = sqlite.prepare( ‘SELECT * FROM test;’);
Varre o conjunto de resultados e adiciona o resultado na label1
while( ! statement.step() ){
label1.innerText = label1.innerText + statement.ColumnValue(0);
}
Limpeza final, fecha o statement e fecha a conexão
statement.close();
sqlite.close();
}
Nada complicado …
segue o codigo fonte do gadget sql_lite_sample
e as referências usadas
how to embed SQLite in a Google Gadget
http://googledesktopapis.blogspot.com/2008/07/tip-embed-sqlite3-database.html
Home of the activex wrapper
http://www.assembla.com/wiki/show/litex
documentation of the wrapper
http://www.assembla.com/spaces/litex/documents/c-5hiSb6ar3y3sab7jnrAJ/download/litex.pdf
home of the sqlite
http://www.sqlite.org/
API do google gadget
http://code.google.com/apis/desktop/docs/gadget_apiref.html
