Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
suvorov
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 110
#1

Подключение к базе данных, кторая хранится в памяти устройста - Программирование Android

04.03.2014, 15:59. Просмотров 1256. Ответов 1
Метки нет (Все метки)

Добрый день!
Есть база данных sqlite, которая лежит в sdcard. Подключаюсь к базе следующим образом:
Java
1
2
String dbfile = sdcard.getAbsolutePath() + File.separator+ "database.sql";
database = SQLiteDatabase.openDatabase(dbfile, null, SQLiteDatabase.OPEN_READONLY);
Данных метод работает только на андроид 4.2+. Это судя по отзывам пользователей.
Есть еще метод, который уже работает на всех устройстах, но увы мне не подходит, так как этот метод изменят сам файл базы данных. Ниже сам метод:
Java
1
database = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
Подскажите, что можно сделать в данном случае? Главная задача, открыть базу данных без каких либо изменений самой базы, тоесть READONLY! Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2014, 15:59     Подключение к базе данных, кторая хранится в памяти устройста
Посмотрите здесь:
Подключение к базе данных Android
Подключение к базе данных из ViewPager Android
Подключение эклипс к базе данных phpmyadmin Android
AndroidStudio подключение к базе данных Oracle Android
Подключение к Базе данных скайп for android Android
Android Подключение java к базе данных sql 2008 r2
Где хранится файл базы данных SQLite на устройстве? Android
Android Сортировка данных в базе
Android Доступ к базе данных
Не удается подключиться к базе данных Android
Android Подключиться к готовой базе данных
Android Создать несколько таблиц в базе данных

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
suvorov
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 110
13.03.2014, 04:41  [ТС]     Подключение к базе данных, кторая хранится в памяти устройста #2
Проблема частично решена! В первом случае база открывалась в режиме только для чтения. А на некоторых устройствах требовалась таблица android_metadata, которой не существовало. Немного погуглив, я нашел, что эта таблица должна всегда присутствовать. Отсюда первый метод не работал. Поэтому если кто создает базу данных вне приложения, то не забудьте включить данную таблицу(android_metadata). Второй метод само собой работал, так как мог редактировать базу и отсюда создал таблицу android_metadata самостоятельно.

НО! Судя из отчетов пользователей, база данных открывается далеко не у всех. Прилагаю 2 ошибки и надеюсь на вашу помощь!

Java
1
2
android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
android.database.sqlite.SQLiteException: unable to open database file
Yandex
Объявления
13.03.2014, 04:41     Подключение к базе данных, кторая хранится в памяти устройста
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru