Я новичок в разработке ионных 2 (также не работал с ионным-1).Работа с плагином Cordova Sqlite в ионном режиме 2
Я пытаюсь использовать плагин corova sqlite в приложении. Я последовал за Use SQLite in Ionic 2 ссылкой. Мог добавить плагин в проект, используя следующую команду.
$ ionic plugin add cordova-sqlite-storage
После развертывания приложения на реальном устройстве data.db был создан и открыт, а также people
таблица была создана успешно. Ниже бревно из Xcode:
2016-10-17 16:29:16.435992 SqlProject[238:3982] -[SQLitePlugin pluginInitialize] [Line 67] no cloud sync at path: /var/mobile/Containers/Data/Application/DFDADD59-D48E-4D4C-B8F0-23EEDE169471/Library/LocalDatabase 2016-10-17 16:29:16.436138 SqlProject[238:4034] -[SQLitePlugin openNow:] [Line 137] open full db path: /var/mobile/Containers/Data/Application/DFDADD59-D48E-4D4C-B8F0-23EEDE169471/Library/LocalDatabase/data.db 2016-10-17 16:29:16.443765 SqlProject[238:4034] -[SQLitePlugin openNow:] [Line 163] Good news: SQLite is thread safe! 2016-10-17 16:29:16.448487 SqlProject[238:3982] OPEN database: data.db - OK 2016-10-17 16:29:16.463667 SqlProject[238:3982] TABLE CREATED: [object Object]
Код для открытия базы данных:
import { SQLite } from 'ionic-native';
constructor(platform: Platform) {
platform.ready().then(() => {
StatusBar.styleDefault();
let database = new SQLite();
database.openDatabase({
name: "data.db",
location: "default"
}).then(() => {
database.executeSql("CREATE TABLE IF NOT EXISTS people (id INTEGER PRIMARY KEY AUTOINCREMENT, firstname TEXT, lastname TEXT)", {}).then((data) => {
console.log("TABLE CREATED: ", data);
}, (error) => {
console.error("Unable to create table", error);
})
}, (error) => {
console.error("Unable to open database", error);
});
});
}
Но, теперь я получаю ошибку при Вставка и Fetching записи из db.
public add() {
console.log("Inside the add function- ");
this.database.executeSql("INSERT INTO people (firstname, lastname) VALUES (?, ?)", ['mahesh', 'bhalerao']).then((data) => {
console.log("INSERTED: " + JSON.stringify(data));
}, (error) => {
console.log("ERROR: " + JSON);
});
}
public fetchRecords() {
this.database.executeSql("SELECT * FROM people", []).then((data) => {
alert("executeSql refresh function success");
this.people = [];
if(data.rows.length > 0) {
for(var i = 0; i < data.rows.length; i++) {
this.people.push({firstname: data.rows.item(i).firstname, lastname: data.rows.item(i).lastname});
}
}
}, (error) => {
console.log("ERROR: " + JSON.stringify(error.err));
});
}
Я получаю неопределенную ошибку.
ERROR: undefined
Не уверен, что случилось.
Любая помощь будет оценена по достоинству. Спасибо!
Вы абсолютно уверены, что этот плагин поддерживает обещания? Если я правильно его помню, вам нужно использовать обратный вызов успеха, который возвращает набор результатов. Можете ли вы показать, пожалуйста, покажите более подходящий код (например, что это такое. База данных и как он открывается и обрабатывается) – Fylax
@Fylax Я добавил соответствующий для открытия базы данных. – Mahesh