|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : août 2007 Messages : 118 ![]() |
Hello,
J'ai un petit souci avec la DB SQLite que j'utilise dans mon application AIR. Quand je lance l'applic depuis Eclipse, tout fonctionne très bien mais quand je lance la version installée, impossible de faire un update sur la DB, il ne mémorise pas mes changements. La DB se trouve dans le folder src/resources/db de mon projet : Code :
Merci d'avance !
__________________
Y a des jours, faut pas me chercher... et y a des jours tous les jours ! |
||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : août 2007 Messages : 118 ![]() |
Ok j'ai trouvé, l'application directory est read-only
Il faut utiliser File.applicationStorageDirectory;
__________________
Y a des jours, faut pas me chercher... et y a des jours tous les jours ! |
|
|
20
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : janvier 2006 Messages : 705 ![]() |
C'est justement ce que j'allais te répondre lorsque j'ai vu ta réponse
c'est typiquement un problème de droit sur les répertoires a+ |
|
|
00
|
|
|
#4 | ||
|
Membre du Club
![]() Inscription : août 2007 Messages : 118 ![]() |
Bon j'ai un autre problème, il semblerait que mon applic ne trouve la DB que lorsque je la lance depuis Eclipse. Lorsque je crée un .air et que je l'installe, que ce soit sur PC ou Mac, l'applic ne trouve pas la DB...
Code :
Qu'est-ce qui m'a échapé ? Merci d'avance !
__________________
Y a des jours, faut pas me chercher... et y a des jours tous les jours ! |
||
|
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() Inscription : août 2007 Messages : 118 ![]() |
J'ai trouvé la solution. Je prends le fichier de la db dans l'application directory et j'en fait une copie dans l'application storage directory :
Code :
Quand je lance l'applic depuis Eclipse, ça tourne sans problème mais quand j'installe l'application et que je la lance, elle rame tellement que ça plante carrément. Qqun voit une raison pour laquelle la version installée aurait + de mal à charger les données que lorsque je lance l'applic depuis Eclipse ? Merci d'avance !
__________________
Y a des jours, faut pas me chercher... et y a des jours tous les jours ! |
||
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : août 2007 Messages : 118 ![]() |
J'ai fait un peu de refactoring. Le dataprovider de mon datagrid reçoit maintenant le résultat d'un select sur une vue au lieu d'un object graph complexe. Ça va beaucoup vite du coup lol.
En revanche ça m'a amené de nouveau un autre problème (grrrr)... A partir d'Eclipse, aucune problème, comme d'habitude. Par contre depuis la version installée, aucune donnée ne s'affiche dans les datagrid ! Pourtant j'ai des données qui s'affichent sur d'autres écrans donc l'applic trouve bien le fichier .sqlite et arrive à récupérer des données. Mais mes select sur les vues... niet. J'ai fait un insert du contenu de la vue dans une table pour test et oh surprise, quand je fais mon select sur la table, ça fonctionne. Pourquoi l'applic AIR est-elle capable de faire un select sur une table et pas sur une vue ? Alors que ça fonctionne depuis Eclipse ! Quelqu'un a déjà eu ce problème ? Merci pour votre aide. Edit : j'ai essayé de faire le select qui correspond à ma vue directement depuis l'applic, les données sont affichées depuis Eclipse mais rien depuis la version installée... Je ne comprends pas cette différence entre la version installée et mon IDE...
__________________
Y a des jours, faut pas me chercher... et y a des jours tous les jours ! |
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : janvier 2006 Messages : 705 ![]() |
Salut
je ne sais pas la différence entre Eclipse et ton appli car j'utilise Flex Builder mais par contre il se peut que tu aies toujours de problèmes de droits. ta base des données est installée avec l'appli sur par exemple File.applicationDirectory Dans mon cas, mon appli contrôle File.documentsDirectory. Si la base des données n'existe pas (première installation), il la copie, sinon il pointe sur cet emplacement (File.documentsDirectory) je n'ai jamais utilisé File.applicationStorageDirectory mais j'ai le vague souvenir d'avoir eu des soucis aussi. Par contre avec File.documentsDirectory tu es sur de ne pas en avoir. Je n'ai aucune idée si je réponds ou pas à ton problème en fait!!!! ![]() mais je te dis ce que je fais au cas où. fais un test en plaçant ta base sur un répertoire moins contraignant comme c'est le cas de "Documents" on ne sait jamais |
|
|
10
|
|
|
#8 |
|
Membre du Club
![]() Inscription : août 2007 Messages : 118 ![]() |
Merci bcp pour ta réponse Garra. Je vais faire un test.
Cela dit, comme je le disais, j'ai des données en provenance de la DB qui s'affichent sur d'autres écrans. Je ne pense donc pas qu'il y ait un problème de droits sur le répertoire de la DB... Edit: je confirme, cela ne change rien. Fonctionne dans Eclipse, ne fonctionne pas via l'applic. C'est sûrement lié à l'implémentation de SQLite mais je suis surpris d'être le seul à avoir ce problème
__________________
Y a des jours, faut pas me chercher... et y a des jours tous les jours ! |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : août 2007 Messages : 118 ![]() |
Une de mes tables contenait des string vides au lieu d'une valeur nulle dans un champ de type numérique...
C'était la cause de tous mes problèmes... tout fonctionne parfaitement maintenant. Merci !
__________________
Y a des jours, faut pas me chercher... et y a des jours tous les jours ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com