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