Plugin sqlite cordova

1. Plugin sqlite cordova

Luís Roberto Cavalcanti da Silva
luisrcs

Enviado em 28/12/2016 - 18:52h

Estou iniciando no desenvolvimento com Cordova/Phonegap e tenho um projeto que está parado pois não consigo fazer consultas no banco de dados, pelo plugin sqlite. Segue o código:


function salvarDados(){
var disc = document.getElementsByName('disciplina');
var esc = document.getElementsByName('escola');
var db = null;
document.addEventListener('deviceready', function(){
db = window.sqlitePlugin.openDatabase({name: 'demo.db', location: 'default'});
});
db.transaction(function(tx){
tx.executeSql('CREATE TABLE IF NOT EXISTS aula (id integer, disciplina text, escola text)');
alert('ok'); //alert 1
tx.executeSql('INSERT INTO aula (disciplina, escola) VALUES ('+disc[0].value+', '+esc[0].value+')');
alert('ok'); //alert 2
});
alert('ok'); //alert 3
db.transaction(function(tx){
alert('ok'); //alert 4
tx.executeSql('SELECT disciplina FROM aula', [], function(tx, rs){
alert('ok'); //alert 5
var linha = rs.rows.length;
var item = rs.rows.item(0).disciplina;
if(linha){
alert('Succes');
alert(linha);
}
else{
alert('Fail');
}
if(item){
alert('Succes');
alert(item);
}
else{
alert('Fail');
}
});
});
}


Trata-se de um teste para aprender o funcionamento do plugin. Coloquei vários alert's para marcar até onde o código funciona; e ele vai até o alert 4, o que sugere que o banco de dados foi criado e populado, mas na hora da consulta (SELECT) não roda nem o primeiro comando, que seria o alert 5, o que indica que há erro nesse trecho do código: tx.executeSql('SELECT disciplina FROM aula', [], function(tx, rs){, o que é estranho porque copiei direto do site do desenvolvedor, mas não consegui identificar erro.

Faço todos os passos até gerar o apk e instalar no smartphone Android.

O que será que está errado?

Agradeço.




2. Re: Plugin sqlite cordova

Luís Roberto Cavalcanti da Silva
luisrcs

Enviado em 29/12/2016 - 12:22h

Depois de estudar profundamente API do plugin desvendei o mistério, ficando o código assim:

function salvarDados(){
function onDeviceReady(){
db = window.sqlitePlugin.openDatabase({name: 'demo.db', location: 'default'});
}
function criarTabela(){
db.executeSql('CREATE TABLE IF NOT EXISTS aula (id, disciplina , escola)');
}
function popularTabela(){
db.executeSql('INSERT INTO aula (disciplina, escola) VALUES (?,?)', [disc[0].value, esc[0].value]); //a maior mudança foi aqui
}
function consultarTabela(){
db.executeSql('SELECT disciplina FROM aula', [], function(rs){
alert('Disciplina: '+rs.rows.item(0).disciplina);
});
}
var disc = document.getElementsByName('disciplina');
var esc = document.getElementsByName('escola');
var db = null;
document.addEventListener('deviceready', onDeviceReady, false);
criarTabela();
popularTabela();
consultarTabela();
}


Achei que ficou mais elegante e eficiente.


3. Salvar dados

wesney
wesney

Enviado em 05/03/2017 - 14:21h

Olá luis, tb estou com um projeto que estou usando o SQLite / Cordova, meu problema começa para resgatar esses dados, como posso acessar esses dados fora do aparelho?
quero exportar para um CSV ou TXT ou até um SQL, até envar em um ajax para um webService!

tenho uma ideia de colocar esse ajax na hora da consulta dos dados, mas queria saber como acessar esses dados por algum arquivo ou sincronizar com algum outro banco!

vc ja passou por isso?

var myDB;

document.addEventListener("deviceready",onDeviceReady,false);
function onDeviceReady(){
myDB = window.sqlitePlugin.openDatabase({name: "mySQLite.db", location: 2});
}


esse é meu cod de criação, dai na parte de location, esse valor 2 é parametro no plugin cordova-sqlite-storage


4. Re: Plugin sqlite cordova

Luís Roberto Cavalcanti da Silva
luisrcs

Enviado em 06/03/2017 - 11:20h

O diferencial do cordova-sqlite é a manipulação de banco de dados localmente, no dispositivo.
Não testei, mas tem um plugin JQuery que exporta tabela html em. csv. Nesse caso terá que fazer um SELECT no banco e gerar uma tabela, que depois deve ser gerado o .csv. Segue o link:

http://www.jqueryscript.net/table/jQuery-Plugin-To-Export-Table-Data-To-CSV-File-table2csv.html

No caso de acessar banco de dados externos, terá que ter em mente o uso de AJAX para acessar o banco. No caso todas as vezes que alterar o banco do dispositivo, terá que alterar no servidor também.
Mas será mesmo necessário utilização de banco de dados externos?






Patrocínio

Site hospedado pelo provedor HostGator.

Artigos

Notícias

Tópicos

Top 10 do mês