Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/10/2011, 10h38   #1
Membre du Club
 
Avatar de Blaede
 
Inscription : août 2007
Messages : 118
Détails du profil
Informations personnelles :
Âge : 35
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 118
Points : 45
Points : 45
Par défaut SQLite et SQLMode.UPDATE

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 :
1
2
3
 
databaseFile = File.applicationDirectory;
databaseFile = databaseFile.resolvePath("db/database.sqlite");
Quelqu'un peut me dire pourquoi j'arrive à sauver les changements depuis l'IDE et pas de puis l'install ?

Merci d'avance !
__________________
Y a des jours, faut pas me chercher... et y a des jours tous les jours !
Blaede est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 12h16   #2
Membre du Club
 
Avatar de Blaede
 
Inscription : août 2007
Messages : 118
Détails du profil
Informations personnelles :
Âge : 35
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 118
Points : 45
Points : 45
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 !
Blaede est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 25/10/2011, 19h41   #3
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
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+
Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 18h12   #4
Membre du Club
 
Avatar de Blaede
 
Inscription : août 2007
Messages : 118
Détails du profil
Informations personnelles :
Âge : 35
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 118
Points : 45
Points : 45
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 :
1
2
3
var databaseFile:File;
databaseFile = File.applicationStorageDirectory;
databaseFile = databaseFile.resolvePath("db.sqlite");
Le fichier SQLite de la db se trouve dans scr/main/resources/db

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 !
Blaede est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2011, 16h05   #5
Membre du Club
 
Avatar de Blaede
 
Inscription : août 2007
Messages : 118
Détails du profil
Informations personnelles :
Âge : 35
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 118
Points : 45
Points : 45
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 :
1
2
3
4
var dbFile:File = File.applicationDirectory.resolvePath("db/db.sqlite");
var databaseFile:File = File.applicationStorageDirectory.resolvePath("db.sqlite");
 
if (!databaseFile.exists) dbFile.copyTo(databaseFile, true);
En revanche j'ai un nouveau problème...
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 !
Blaede est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 09h48   #6
Membre du Club
 
Avatar de Blaede
 
Inscription : août 2007
Messages : 118
Détails du profil
Informations personnelles :
Âge : 35
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 118
Points : 45
Points : 45
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 !
Blaede est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 10h49   #7
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
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
Garra est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/11/2011, 11h31   #8
Membre du Club
 
Avatar de Blaede
 
Inscription : août 2007
Messages : 118
Détails du profil
Informations personnelles :
Âge : 35
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 118
Points : 45
Points : 45
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 !
Blaede est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 14h48   #9
Membre du Club
 
Avatar de Blaede
 
Inscription : août 2007
Messages : 118
Détails du profil
Informations personnelles :
Âge : 35
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 118
Points : 45
Points : 45
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 !
Blaede est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h21.


 
 
 
 
Partenaires

Hébergement Web