J'ai trouvé que l'utilisation de SQLiteDatabase.createDatabase peut créer une base de données sur le stockage externe, mais utiliser SQLiteOpenHelper ne peut pas créer de base de données à sdcard. Pourquoi?SQLiteOpenHelper ne peut pas créer de base de données à sdcard
0
A
Répondre
2
> SQLiteOpenHelper can not create database to sdcard. Why?
... parce qu'il obtient le chemin de fichier absolu pour la base de données à partir de l'objet de contexte.
DatabaseHelper(final
contexte Contexte, String databaseName)
La mise en œuvre par défaut contexte ne prend pas en charge les chemins par l'utilisateur.
Vous pouvez fournir votre propre mise en œuvre de contexte qui fournit un chemin de fichier comme expliqué dans ma réponse à stackoverflow sqliteopenhelper-problem-with-fully-qualified-db-path-name
Questions connexes
- 1. ne peut pas créer de répertoire à la base de données: migrer
- 2. écrire à sdcard ne fonctionne pas
- 3. MySQL ne peut pas voir la base de données
- 4. Faire une sauvegarde de base de données SDCard sur Android
- 5. PHP & PDO: Peut se connecter à la base de données; ne peut pas sembler interroger
- 6. ne peut pas créer la base de données MySQL en utilisant cmd
- 7. C++ ne peut pas créer de vecteur
- 8. SQLiteOpenHelper onCreate() crée toujours la base de données lors de son exécution?
- 9. commande Créer une base de données ne
- 10. SqlMetal ne parvient pas à créer DBML à partir de la base de données Sqlite
- 11. Android: puis-je utiliser une classe SQLiteOpenHelper pour plusieurs fichiers de base de données?
- 12. django: ne peut pas s'adapter erreur lors de l'importation des données de base de données postgres
- 13. ne peut pas obtenir clob type de données de base de données dans l'entité JPA
- 14. MOSS 2007 administration centrale - ne peut pas se connecter à la base de données de configuration
- 15. L'ordinateur client ne peut pas se connecter à la base de données de l'application C# .net
- 16. Android - ne peut pas lire les fichiers TXT de SDcard sur la machine réelle?
- 17. ne peut pas se connecter à la base de données servlet cu mssql
- 18. La classe de base de données ne se connecte pas correctement à ma base de données
- 19. Base de données SQLite - ne peut pas voir les mises à jour
- 20. VBulletin ne peut pas se connecter à la base de données MySQL
- 21. asp.net ne peut pas mettre à jour la base de données
- 22. Le plugin IE ActiveX ne peut pas créer de fichier
- 23. ASP.Net ne peut pas copier créer/shadow
- 24. ne peut pas créer MD5 FingerPrint?
- 25. SVNkit ne peut pas créer SVNRepoitory
- 26. Base de données d'enregistrement à la base de données ne fonctionne pas
- 27. asp.net mvc ne peut pas accéder aux données de cookie dans le contrôleur de base
- 28. Python ne peut pas créer d'instances
- 29. Dépannage: Rails ne peut pas enregistrer dans la base de données en production?
- 30. LINQDATASOURCE ne pas commettre à la base de données immédiatement
Je me souviens vaguement (il y a une demi-année) que je ne pouvais pas utiliser SQLiteOpenHelper pour SDCard , donc je suis juste passé à un emplacement DB par défaut (mémoire interne). La seule raison de l'utilisation de SDCard était la taille de la base de données. Comme mes "enregistrements" contiennent des images, j'ai décidé de ne stocker que le chemin de l'image dans la base de données, alors que les images sont sur la carte SD. Cela m'a permis de garder la taille compacte de la DB (la mémoire interne est plutôt limitée) et cela fonctionne pour le moment. –
Vous devez avoir un accès en écriture à la carte SD. Si vous avez cela, fournissez simplement un nom de chemin complet à l'aide de la base de données. –
Ou peut-être pas. Je viens de vérifier mon ancien code, et j'ai seulement traité les bases de données que j'ai téléchargées sur la carte SD. Je n'utilise pas d'aide de base de données dans mes adaptateurs de base de données pour ceux-ci. Je viens d'utiliser SQLiteDatabase.openDatabase (databaseFile, null, SQLiteDatabase.OPEN_READONLY | SQLiteDatabase.NO_LOCALIZED_COLLATORS); –