Используются Ionic и AngularJS. Скачал БД с сервера, таблицы не определяются в БД SQLite для Android, но работают в iOS

Предыстория приложения:

  1. Загрузка БД с помощью $cordovaFileTransfer.
  2. Разархивировать его с помощью $cordovaZip
  3. Доступ к БД с помощью window.sqlitePlugin.openDatabase({name: 'имя БД'})

Сохранение БД по адресу 'cordova.file.dataDirectory;'

Когда я пытаюсь выполнить команды в БД, используя следующий код:

    db.executeSql(query, parameters, function (result) {
    //alert('execution result is in console');
    console.log('Check SELECT result from rows: ' +
    JSON.stringify(result.rows.item(0)));
    //alert('Check SELECT result from rows: ' +
    JSON.stringify(result.rows.item(0)));
    console.log('Check SELECT result from rows_only result: ' +
    JSON.stringify(result));
    q.resolve(result);
    },function(error){
    alert('Error from factory DBA self.query: ' + JSON.stringify(error));
    q.reject(error);
    });

Для iOS все работает нормально, и я вижу результат в функции успеха, тогда как в Android его входной блок ошибок говорит: «Ошибка оператора подготовки sqlite - такой таблицы нет»

Примечание. Раньше я получал ошибку EROF на Android, прежде чем изменить местоположение базы данных с documentDirectory на dataDirectory.


person Dileep Mettu    schedule 13.01.2016    source источник


Ответы (1)


Вместо dataDirectory следует использовать /data/data/{appidentifier}/databases/!!!

person Dileep Mettu    schedule 20.01.2016