Я создаю скрипт для чтения атрибута из базы данных - из-за архитектуры проекта это проще всего, если это реализовано в JS.IndexedDB «Не удалось выполнить операцию, потому что запрошенный объект базы данных не найден».
Я использую IndexedDB, и я могу найти базу данных успешно, но когда я пытаюсь получить атрибут из objectStore, я получаю сообщение об ошибке (похоже, я не могу получить доступ к таблице):
Firefox: «NotFoundError: операция завершилась неудачно, потому что запрошенный объект базы данных не найден. Например, хранилище объектов не существует, а было открыто».
Хром: NotFoundError: Не удалось выполнить транзакцию в 'IDBDatabase': один из указанных хранилищ объектов не найден.
Мой код:
var request = window.indexedDB.open("/app_name/database.sqlite", 1);
request.onsuccess = function(event) {
console.log("Found Database");
db = event.target.result;
var transaction = db.transaction(["TABLE"], "readonly");
var objectStore = transaction.objectStore("TABLE");
var ob = objectStore.get(String(ATTRIBUTE));
ob.onsuccess = function(e) {
console.log("Got ATTRIBUTE")
}
ob.onerror = function(e) {
console.log("Have not got ATTRIBUTE")
}
}
request.onerror = function(event) {
console.log("Database not found");
}
Ошибка возникает на линии var transaction = db.transaction(["TABLE"], "readonly");
.
ТАБЛИЦА существует - когда база данных открыта в средстве просмотра, атрибут есть.
Я не использовал .onupgradeneeded
, так как я не создаю никаких новых объектов, а просто пытаюсь их прочитать.