· 7 years ago · Jan 30, 2019, 07:34 PM
1import { Component } from '@angular/core';
2import { NavController } from 'ionic-angular';
3
4import { NewEntryPage } from '../new-entry/new-entry';
5
6import { SQLite, SQLiteObject } from '@ionic-native/sqlite/ngx';
7
8@Component({
9 selector: 'page-home',
10 templateUrl: 'home.html'
11})
12export class HomePage {
13 constructor(
14 public navCtrl: NavController,
15 public sqlite: SQLite) { }
16
17 addEntry() {
18 console.log('Adicionar lançamento');
19 this.navCtrl.push(NewEntryPage);
20 }
21
22 testDb() {
23 console.log('InÃcio do Teste DB');
24
25 this.sqlite.create({
26 name: 'data.db',
27 location: 'default'
28 })
29 .then((db: SQLiteObject) => {
30 console.log('BD criado');
31
32 // Executa o comando create
33 db.sqlBatch([
34 "CREATE TABLE IF NOT EXISTS entries (id INTEGER PRIMARY KEY AUTOINCREMENT, amount DECIMAL, description TEXT)"
35 ])
36 .then(() => {
37 console.log('tabelas criadas');
38
39 const v1 = 100.2;
40 const v2 = 'Felipe';
41
42 // Insere um valor qualquer...
43 const sqlInsert = "INSERT INTO entries (amount, description) VALUES (?, ?)";
44 const dataInsert = [v1, v2];
45
46 db.executeSql(sqlInsert, dataInsert)
47 .then(() => {
48 console.log('valores inseridos');
49
50 const sql = "SELECT amount, description FROM entries;";
51 const data = [];
52
53 db.executeSql(sql, data)
54 .then((values: any) => {
55
56 console.log(values.rows.length);
57
58 for(var i = 0; i < values.rows.length; i++) {
59 console.log(JSON.stringify(values.rows.item(i)));
60 }
61
62 });
63 })
64 .catch((e) => {
65 console.log('Erro ao inserir os valores no BD');
66 });
67
68 })
69 .catch((e) => {
70 console.error('erro ao executar o comando sql', JSON.stringify(e));
71 });
72
73
74 })
75 .catch(() => {
76 console.error('Erro ao criar o BD.');
77 });
78 }
79}