Можно ли загрузить / создать базу данных в SDCard с помощью phoneGap в Android?

Как я могу загрузить существующий файл .db из sdcard или создать базу данных в sdcard, используя phoneGap или любой плагин, который будет работать с phoneGap?

Я хочу сохранить мой файл .db в SDCard, потому что размер базы данных может увеличиться.

 Samik R03 авг. 2012 г., 20:47
Добавлена проблема в PhoneGap JIRA:issues.apache.org/jira/browse/CB-1191
 mobilemagic03 авг. 2012 г., 08:05
Нет, я не мог найти решение
 Samik R03 авг. 2012 г., 01:16
Точная проблема, с которой я сталкиваюсь. Вы нашли какое-нибудь решение?
 Samik R03 авг. 2012 г., 19:15
Благодарю. Кроме того, проигнорируйте мой ответ о persistanceJS: persistanceJS не работает для баз данных sqlite на SD-карте, он работает для баз данных webSQL. Проголосовал за удаление ответа.

Ответы на вопрос(3)

С той же проблемой я сталкиваюсь, но после долгого тщательного изучения библиотеки phonegap-cordova я обнаружил, что ее не хватает для обеспечения гибкости при выборе пути.

Причина может быть в кросс-платформенном ограничении, библиотека обязывает вас использовать путь к приложению по умолчанию, поэтому на другой платформе библиотека может легко получить файл.

но что!! есть хитрость для достижения цели ....

function onDeviceReady() {
    var db = window.openDatabase("test", "1.0", "Test DB", 1000000);
}

на самом деле, когда JavaScript вызывает & apos; openDatabase () & apos; функция, делать следующие вещи

add '/data/data/< package_name_of_your_app>/' before db_name and add '.db' after db_name

то есть: в вышеупомянутом случае результат будет;

/data/data/< package_name_of_your_app>/test.db

так что хитрость идет сюда;

function onDeviceReady() {
      var db = window.openDatabase("../../../../mnt/sdcard/test", "1.0", "Test DB", 1000000);
}
add '../../../../mnt/sdcard/' before db_name, don't add extension since library add '.db' itself, if you add any extension then your db file will be db_name.(yourextension).db

что теперь! будет;

add '/data/data/< package_name_of_your_app>/' before db_name and add '.db' after db_name it will take your db_name '../../../../mnt/sdcard/test'

следовательно, результат будет;

/data/data/< package_name_of_your_app>/../../../../mnt/sdcard/test.db

Итак, он вернется к корню вашего мобильного телефона, а затем/mnt/sdcard

 19 сент. 2013 г., 07:41
О, спасибо @ smkrn110 Я успешно сохранил файл в моей SDCard. но когда я собираюсь получить его, он ничего не отображает? есть ли другой способ получить к нему доступ
 29 апр. 2013 г., 09:01
Я очень новичок в PhoneGap и ищу создание базы данных на SDCard. когда я попробовал описанный выше трюк, я сталкиваюсь с ошибкой "результат выражения" db "; [ноль] не является объектом. Вы можете сказать, в чем проблема? Спасибо:)
 26 дек. 2013 г., 10:28
@chhameed, так как ваш файл базы данных создан успешно,'db' переменная указывает на ваш db-файл, к которому у вас уже есть доступ, вы должны просмотреть свой код. Получить помощь отhere
 08 янв. 2013 г., 16:17
& APOS; ../../../../& APOS; используйте 4 раза, не забудьте использовать «mnt / sdcard», я пробовал и работает отлично ....
 08 янв. 2013 г., 12:46
Этого также можно добиться, создав собственный плагин & lt; название плагина = & quot; хранилище & quot; значение = & Quot; org.apache.cordova.Storage & Quot; / & GT;

Да, это возможно. наряду с изменениями вам необходимо указать путь к файлу БД в строке подключения. больше похоже на код ссылкиВот

 22 июн. 2012 г., 11:03
какую базу данных вы используете?
 mobilemagic22 июн. 2012 г., 11:16
я использую файл .db, использую api phoneGap, когда мы вызываем метод openDatabase (), как указано выше в комментарии. он создает два файла, т.е. 0000000000000001.db и Databases.db, поэтому я создал эти два файла вручную, заполнив их данными, и теперь я хочу сохранить этот файл на SDCard и получить к нему доступ с помощью метода openDatabase.
 22 июн. 2012 г., 11:25
Хорошо, я не специализируюсь на Android, поэтому в лучшем случае я могу предложить установить настройки БД на карту или отредактировать путь, по которому создаются ваши файлы 0000000000000001.db и Databases.db.
 mobilemagic22 июн. 2012 г., 11:01
спасибо за твой ответ. приведенная выше ссылка содержит код для импорта и экспорта файла db из sdcard во внутреннюю память и наоборот, но я хочу использовать только существующую базу данных, хранящуюся на sdcard, с использованием phoneGap api. и моя проблема в том, что этот метод задан как window.openDatabase (database_name, database_version, database_displayname, database_size); принимать только имя базы данных, а не путь, из которого можно загрузить базу данных.

Да . Вы можете, Я просто предоставлю ссылку, http://gauravstomar.blogspot.se/2011/08/prepopulate-sqlite-in-phonegap.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+GauravSTomarBootstrappingIntelligence+(Gaurav+S+Tomar+:+Bootstrapping+Intelligence)

Это на самом деле о предварительной заселения. Вы можете получить что-то из этого. Для тех, кто хочет предварительно заселить, это то, что есть.

 mobilemagic22 июн. 2012 г., 11:25
спасибо за ваш ответ, но указанная вами ссылка, я уже использовал ее, в этой ссылке файл базы данных вставляется в папку базы данных phoneGap, расположенную по умолчанию, т.е. файлы на SDCard и загрузите оттуда.

Ваш ответ на вопрос