У меня есть предварительно заполненная база данных с именем animals.db , в которой я хранил папку assets / data / . Я создал сервис, который подключается к базе данных. Согласно последним документам, ioni c не поддерживает openDatabase, вместо этого он уведомляет об использовании create.
Ниже приведен код, который я пробовал.
const options: any = {
name: 'animals.db',
location: 'default',
createFromLocation: 1
}
constructor(private plt: Platform, private sqlitePorter: SQLitePorter, private sqlite: SQLite, private http: HttpClient) {
this.plt.ready().then(() => {
console.log("ready to connect");
this.sqlite.create(options).then((db: SQLiteObject) => {
this.database = db;
alert("obj =>"+JSON.stringify(this.database))
}).catch(e => alert(e))
});
}
getData(){
this.database.executeSql(`SELECT * FROM animaldata WHERE Date='12-Apr-20`, [])
.then((res) => {alert('Executed SQL =>'+ JSON.stringify(res))},(e)=>alert(JSON.stringify(e)))
.catch(e => console.log(e));
}
this.sqlite.create не открывает соединение с предварительно заполненной БД, так как я получаю сообщение об ошибке, в котором отсутствует таблица «animaldata» .
Также я использовал приведенный ниже запрос, чтобы получить список всех таблиц, используя запрос ниже
SELECT * FROM sqlite_master where type='table'
Но он показывает ноль строк и кажется, что он не может найти БД в активах. папка или sqlite.create не соединяются с предварительно заполненной базой данных.
Я что-то не так делаю в вышеуказанных шагах?
Моя информация env для справки
Ionic:
Ionic CLI : 5.4.16 (C:\Users\vrus\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework : @ionic/angular 5.0.7
@angular-devkit/build-angular : 0.803.26
@angular-devkit/schematics : 8.3.26
@angular/cli : 8.3.26
@ionic/angular-toolkit : 2.2.0
Cordova:
Cordova CLI : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : android 8.1.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.1.3, (and 5 other plugins)