В какой класс помещать конструктор SQLite?

112
18 августа 2018, 13:30

Задача - подключить SQLite к проекту. Имеется Конструктор. Он должен быть помещен в Класс.

Вопрос: в какой класс поместить конструктор?

import { NgModule, ErrorHandler } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { MyApp } from './app.component';
import { AboutPage } from '../pages/about/about';
import { ContactPage } from '../pages/contact/contact';
import { HomePage } from '../pages/home/home';
import { TabsPage } from '../pages/tabs/tabs';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite';
'use strict';
class DataBase {
  constructor(private sqlite: SQLite) { }
   this.sqlite.create({
     name: 'data.db',
     location: 'default'
})
  .then((db: SQLiteObject) => {
    db.executeSql('create table Newslist(name VARCHAR(32))', {})
      .then(() => console.log('Executed SQL'))
      .catch(e => console.log(e));
  })
} 
@NgModule({
  declarations: [
    MyApp,
    AboutPage,
    ContactPage,
    HomePage,
    TabsPage
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    AboutPage,
    ContactPage,
    HomePage,
    TabsPage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}
Answer 1

В коде имеется ошибка синтаксиса:

class DataBase {
  constructor(private sqlite: SQLite) { }
   this.sqlite.create({
     name: 'data.db',
     location: 'default'
})
  .then((db: SQLiteObject) => {
    db.executeSql('create table Newslist(name VARCHAR(32))', {})
      .then(() => console.log('Executed SQL'))
      .catch(e => console.log(e));
  })
}

В теле класса могут быть определения полей, конструктора, методов и свойств.

В данном случае идет попытка выполнить сразу код.

Для решения достаточно поместить этот код в тело метода, либо конструктора:

class DataBase {
    constructor(private sqlite: SQLite) {  // Начало конструктора
        this.sqlite.create({
            name: 'data.db',
            location: 'default'
        })
        .then((db: SQLiteObject) => {
            db.executeSql('create table Newslist(name VARCHAR(32))', {})
              .then(() => console.log('Executed SQL'))
              .catch(e => console.log(e));
        });
    } // конец конструктора
}
READ ALSO
import csv to mysql/sqlite

import csv to mysql/sqlite

Существует некий csv файл

157
MySQL выбор синонимов иностранного слова

MySQL выбор синонимов иностранного слова

Имеется база словаря (англо-малайский): http://sqlfiddlecom/#!9/716dc2/1

148
Ошибка 1064 SQL syntax

Ошибка 1064 SQL syntax

У меня ошибка SQL syntax errorПочеркивает почему-то слово system (таблица в базе данных на скриншоте видно)

178
Запуск события в промежутке времени в MySQL

Запуск события в промежутке времени в MySQL

Есть эвент в MySQL, который нужно запускать каждый день лишь в определенные часы (пн - с 8:00 до 9:00, вт - с 16:00 до 19:00 к примеру)При чем должен запускаться...

181