|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Problème avec HmodifieStructure sous android |
Débuté par RÉDA / Particulier, 13 fév. 2016 20:26 - 57 réponses |
| |
| | | |
|
| |
Membre enregistré 217 messages Popularité : +12 (12 votes) |
|
Posté le 13 février 2016 - 20:26 |
Bonjour à tous, j'essais depuis des heure d'utiliser la fonction HModifieStructure , ça ne marche pas!
J'explique mon problème. Il m'arrive de mettre à jour certains fichiers de l'analyse HF classic. (Ex: ajout d'une nouvelle rubrique) Dans ce cas, je régénère l'application (APK) puis je la réinstalle au niveau des appareils mobiles (android) Je dois aussi, pour chaque appareil, faire passer les fichier fic concernés à l'outils WDmodfic afin de mettre à jour leurs structures. Cette tâche est très fastidieuse car les tablettes sont dispersées géographiquement.
Je voudrai donc rendre l'utilisateur plus autonome, il télécharge la nouvelle version depuis un serveur, puis dans le cas il où il y aurait une modification des structures elles se mettent à jour de manière automatique. Et si je ne me trompe pas, la fonction HModifieStructure est faite pour ça! Cependant, j'ai beau essayé toutes les solutions trouvées sur ce forum à ce problème je n'y parviens pas :
à l'initialisation du projet, je change l'emplacement du fichier Parametr.FIC à l'aide de hchangerep ensuite je fais appel à la fonction HModifieStructure avec chemin de sauvegarde ou sans, que je ferme le fichier ou pas, le résultat est le même, j'obtiens l'erreur : VOUS AVEZ APPELE LA FONCTION HMODIFIESTRUCTURE. IMPOSSIBLE DE RENOMMER /sdcard/locdata/BDD-HF/parametr.fic en /sdcard/locdata/BDD-HF/parametr.fic
Voici une partie du code d'initialisation du projet :
HChangeRep(Parametr,"/sdcard/Locdata/BDD-HF"); HFerme(Parametr); HModifieStructure(Parametr,hmsSansContrôle,"","/sdcard/Locdata/BDD-HF");
Quelqu'un aurait une idée au problème ? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 474 messages Popularité : +17 (19 votes) |
|
Posté le 15 février 2016 - 10:50 |
Bonjour,
Ce n'est pas la bonne façon de faire. Voila un bout de prog à adapter suivant tes besoins
POUR TOUTE CHAINE sNomUnFichier DE sListedesfichiers SEPAREE PAR RC QUAND EXCEPTION DANS HCréationSiInexistant(sNomUnFichier) FAIRE SI HErreur(hErrEnCours) = 70016 ALORS ToastAffiche("Mise à jour de la structure du fichier <" + ... sNomUnFichier + "> en cours...", toastCourt, cvMilieu, chCentre) SI PAS HModifieStructure(sNomUnFichier) ALORS sListeDesErreurs += [RC] + ... "- Erreur de modification de structure pour le fichier <" + ... sNomUnFichier + "> : " + HErreurInfo() FIN SINON sListeDesErreurs += [RC] + "- Erreur d'accès au fichier <" + ... sNomUnFichier + "> : " + HErreurInfo() FIN FIN FIN
-- Jean-Michel |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 217 messages Popularité : +12 (12 votes) |
|
Posté le 17 février 2016 - 14:16 |
Bonjour, Merci à vous Jean-Michel pour votre aide! J'ai testé votre code et j'obtiens une erreur fatale qui provoque la fermeture de l'application. aucune information n'est donnée dans l'erreur Voici le code en question : Je fais appel à HChangeRep afin de préciser l'emplacement des données L'erreur 70016 est bien détectée, ensuite le message "Mise à jours de la structure du fiche" s'affiche, puis une erreur fatale se produit avec un bouton "Quitter l'application"
HChangeRep(TestFic,"/sdcard/bdd-test"); QUAND EXCEPTION DANS
HCréationSiInexistant(TestFic) FAIRE SI HErreur(hErrEnCours) = 70016 ALORS Info("Mise à jour de la structure du fichie"); SI PAS HModifieStructure(TestFic) ALORS Info("erreur de mise à jours"); Info(HErreurInfo()); FIN SINON Info("Autre Erreur"); Info(HErreurInfo()); FIN FIN |
| |
| |
| | | |
|
| | |
| |
Posté le 18 février 2016 - 11:40 |
Bonjour,
peut être que votre syntaxe n'est pas correcte cela fonctionne très bien dans notre appli, nous faisons :
HChangeRep(MaTable, fRepExe()+"\"+"_"+nIDUser) puis HModifieStructure(MaTable,hmsTâcheDeFond)
C'est tout et ca marche parfaitement
Bonne journée |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 217 messages Popularité : +12 (12 votes) |
|
Posté le 18 février 2016 - 12:27 |
Merci de votre retour NIco. S'agit-il bien d'une application windev mobile sous android ? avec une base HF? |
| |
| |
| | | |
|
| | |
| |
Posté le 19 février 2016 - 09:18 |
| |
| |
| | | |
|
| | |
| |
Posté le 19 février 2016 - 14:03 |
Bonjour
attention, sous android, les droits sont différents en fonction du répertoire. Il est possible que la différence entre vous deux soit le travail dans le répertoire du program (emplacement normal/défaut qui fonctionne) ou sur la sdcard (qui ne fonctionne pas)
Un simple test en changeant d'emplacement devrait montrer si c'est bien ca
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
A votre disposition : WXShowroom.com, WXReplication (open source) et maintenant WXEDM (open source)
Plus d'information sur http://fabriceharari.com
On 2/19/2016 3:18 AM, Nico wrote: > tout à fait. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 217 messages Popularité : +12 (12 votes) |
|
Posté le 19 février 2016 - 15:57 |
En effet ; vous avez vu juste Fabrice. Il s'agit bien du dossier. Si l'on choisi un sous-dossier du dossier de l'application ça ne pose aucun problème. Par contre, si je sors du dossier par ex : /sdcard/autredossier/ là j'ai une erreur... c'est assez embetant, car si je reste dans le dossier de l'application, il m'est impossible de voir ou de transferer les fichier vers un PC (fichier caché et protégé).
Comment faites-vous pour récupérer votre base Nico? à moins que les appareils sont rootés?! |
| |
| |
| | | |
|
| | |
| |
Posté le 20 février 2016 - 14:50 |
Bonjour
> > Comment faites-vous pour récupérer votre base Nico? à moins que les > appareils sont rootés?!
réplication, install des fichiers avec l'appli, webservice, ftp... tout dépend des cas.
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
A votre disposition : WXShowroom.com, WXReplication (open source) et maintenant WXEDM (open source)
Plus d'information sur http://fabriceharari.com |
| |
| |
| | | |
|
| | |
| |
Posté le 23 février 2016 - 14:46 |
Bonjour,
je n'ai pas besoin de récupérer la base du mobile mais vous pouvez peut être faire un export de celle ci en écrivant les données dans un fichier texte ou xml, vous placez ce fichier dans un dossier accessible afin de pouvoir le récupérer.
C'est ce que j'ai fais pour une autre appli, le fichier est envoyé par email par exemple. |
| |
| |
| | | |
|
| | |
| |
Posté le 27 avril 2016 - 12:04 |
Bonjour,
J'ai exactement les mêmes besoins.
J'essaie de mettre à jour automatiquement les fichiers de données au démarrage de l'application.
Voici le code que j'utilise:
sNomUnFichier est une chaîne sListedesfichiers est une chaîne = "FichierA"+RC+"FichierB"+RC slistedeserreurs est une chaîne bErreurCopie est un booléen
HVérifieStructure("*", hIdentique)
POUR TOUTE CHAINE sNomUnFichier DE sListedesfichiers SEPAREE PAR RC QUAND EXCEPTION DANS HCréationSiInexistant(sNomUnFichier) FAIRE SI HErreur(hErrEnCours) =70016 ALORS SI PAS fCopieFichier(PathBDD+"/"+sNomUnFichier+".fic",fRepEnCours()+"/Temp/"+sNomUnFichier+".fic",frRécursif) bErreurCopie = Vrai SI PAS fCopieFichier(PathBDD+"/"+sNomUnFichier+".ndx",fRepEnCours()+"/Temp/"+sNomUnFichier+".ndx",frRécursif) bErreurCopie = Vrai SI PAS fCopieFichier(PathBDD+"/"+sNomUnFichier+".mmo",fRepEnCours()+"/Temp/"+sNomUnFichier+".mmo",frRécursif) bErreurCopie = Vrai SI PAS bErreurCopie ALORS ToastAffiche("Mise à jour de la structure du fichier <"+ ... sNomUnFichier+"> en cours..."+fRepEnCours()+"/Temp/",toastCourt,cvMilieu,chCentre) HChangeRep(sNomUnFichier,fRepEnCours()+"/Temp/") SI PAS HModifieStructure(sNomUnFichier,hmsSansContrôle)ALORS slistedeserreurs+= [RC] + ... "- Erreur de modification de structure pour le fichier <"+ ... sNomUnFichier+"> : "+HErreurInfo() SINON bErreurCopie = Faux SI PAS fCopieFichier(fRepEnCours()+"/Temp/"+sNomUnFichier+".fic",PathBDD+"/"+sNomUnFichier+".fic",frRécursif) bErreurCopie = Vrai SI PAS fCopieFichier(fRepEnCours()+"/Temp/"+sNomUnFichier+".ndx",PathBDD+"/"+sNomUnFichier+".ndx",frRécursif) bErreurCopie = Vrai SI PAS fCopieFichier(fRepEnCours()+"/Temp/"+sNomUnFichier+".mmo",PathBDD+"/"+sNomUnFichier+".mmo",frRécursif) bErreurCopie = Vrai SI bErreurCopie ALORS Erreur("Erreur copie fichier depuis: "+fRepEnCours()+"/Temp/") FIN FIN SINON Erreur("erreur copie fichier vers : "+fRepEnCours()+"/Temp/") FIN SINON slistedeserreurs+= [RC] +"- Erreur d'accès au fichier <"+ ... sNomUnFichier+"> : "+HErreurInfo() FIN FIN FIN
Je réalise une copie des fichiers dans un sous répertoire Temp pour éviter l'erreur fatale générée si on travaille sur un dossier autre que celui de l'application.
Avec ce code je n'ai aucun message d'erreur les copies se font correctement mais la structure des fichiers reste inchangée.
Je ne comprends pas ou est le problème.
D'avance merci pour votre aide
Cezame |
| |
| |
| | | |
|
| | |
| |
Posté le 03 mai 2016 - 14:34 |
J'ai testé sans succès tout ce que je pouvais imaginer.
J'ai déplacé les fichiers dans un sous répertoire de l'application.
Impossible de modifier la structure des fichiers de données avec la fonction Hmodifiestructure. Aucun message d'erreur mais le fichier n'est pas modifié.
Quelqu'un aurait il une explication?
D'avance merci.
Cezame |
| |
| |
| | | |
|
| | |
| |
Posté le 03 mai 2016 - 15:13 |
quel sous répertoire ?
Le 5/3/2016 à 6:34 AM, Cezame a écrit :
J'ai testé sans succès tout ce que je pouvais imaginer.
J'ai déplacé les fichiers dans un sous répertoire de l'application. Impossible de modifier la structure des fichiers de données avec la fonction Hmodifiestructure. Aucun message d'erreur mais le fichier n'est pas modifié.
Quelqu'un aurait il une explication?
D'avance merci.
Cezame |
| |
| |
| | | |
|
| | |
| |
Posté le 03 mai 2016 - 15:36 |
Je travaille avec une base de donnée par année civile.
J'ai mis les fichiers dans l'espace de stockage pour pouvoir y accéder plus facilement.
Si j’exécute le Hmodifiestructure sur l'espace de stockage j'ai une erreur fatale.
J'ai vu ici que pour que cela fonctionne les fichiers devaient être dans le répertoire de l'application ou dans un sous répertoire.
J'ai donc imaginer créer une copie des fichiers dans un répertoire Temp qui est un sous répertoire du répertoire ou se trouve l'appli. Ensuite je fais un HchangeRep() puis je fais le HModifieStructure puis recopie les fichiers modifiés sur l'espace de stockage.
Le Hmodifiestructure s'exécute avec aucune erreur mais le fichier de données n'est pas modifié!
Cezame |
| |
| |
| | | |
|
| | |
| |
Posté le 03 mai 2016 - 15:57 |
J'ai bien compris...
ce que je te demande, c'est le code qui place les fichiers dans ton sous -répertoire, histoire de voir si tu fais bien ce que tu crois faire... et qui devrait fonctionner, en théorie.
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com |
| |
| |
| | | |
|
| | |
| |
Posté le 03 mai 2016 - 17:31 |
Il est au dessus le code :
SI HErreur(hErrEnCours) =70016 ALORS
SI PAS fCopieFichier(PathBDD+"/"+sNomUnFichier+".fic",fRepEnCours()+"/Temp/"+sNomUnFichier+".fic",frRécursif) bErreurCopie = Vrai SI PAS fCopieFichier(PathBDD+"/"+sNomUnFichier+".ndx",fRepEnCours()+"/Temp/"+sNomUnFichier+".ndx",frRécursif) bErreurCopie = Vrai SI PAS fCopieFichier(PathBDD+"/"+sNomUnFichier+".mmo",fRepEnCours()+"/Temp/"+sNomUnFichier+".mmo",frRécursif) bErreurCopie = Vrai SI PAS bErreurCopie ALORS ToastAffiche("Mise à jour de la structure du fichier <"+ ... sNomUnFichier+"> en cours..."+fRepEnCours()+"/Temp/",toastCourt,cvMilieu,chCentre) HChangeRep(sNomUnFichier,fRepEnCours()+"/Temp/") SI PAS HModifieStructure(sNomUnFichier,hmsSansContrôle)ALORS
slistedeserreurs+= [RC] + ... "- Erreur de modification de structure pour le fichier <"+ ... sNomUnFichier+"> : "+HErreurInfo() SINON bErreurCopie = Faux SI PAS fCopieFichier(fRepEnCours()+"/Temp/"+sNomUnFichier+".fic",PathBDD+"/"+sNomUnFichier+".fic",frRécursif) bErreurCopie = Vrai SI PAS fCopieFichier(fRepEnCours()+"/Temp/"+sNomUnFichier+".ndx",PathBDD+"/"+sNomUnFichier+".ndx",frRécursif) bErreurCopie = Vrai SI PAS fCopieFichier(fRepEnCours()+"/Temp/"+sNomUnFichier+".mmo",PathBDD+"/"+sNomUnFichier+".mmo",frRécursif) bErreurCopie = Vrai SI bErreurCopie ALORS Erreur("Erreur copie fichier depuis: "+fRepEnCours()+"/Temp/") FIN FIN SINON Erreur("erreur copie fichier vers : "+fRepEnCours()+"/Temp/") FIN
Je fais simplement des fcopiefichier() et teste si la copie est bien faite.
Cezame |
| |
| |
| | | |
|
| | |
| |
Posté le 03 mai 2016 - 21:42 |
Rebonjour
Premièrement, je ne vois pas de code de création de /temp/. Il est peut être ailleurs, ou il manque...
Ensuite, il est possible que cette syntaxe fonctionne, mais perso, j'ajouterais des 'alors' et des 'fin' à tes fcopiefichier.
D'autre part, je vois des fonctions hxxx et fxxx mélangées, et pas de hclose, ce qui m'interpelle. Logiquement il faudrait faire un hclose avant de copier dans temp et avant de copier depuis temp
Dis nous si ca change quelque chose.
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com |
| |
| |
| | | |
|
| | |
| |
Posté le 04 mai 2016 - 10:54 |
Bonjour Fabrice et merci pour ton aide,
Avant le lancement de la procédure de vérification de mise à jour je fais un Hferme("*").
Je vais essayer de créer le dossier /Temp avant mais comme la fonction fcopie ne renvoie pas d'erreur je pense que la création du /Temp est automatique.
Je vais ajouter le Hferme avant recopie dans le répertoire des données.
Merci encore
Cezame |
| |
| |
| | | |
|
| | |
| |
Posté le 04 mai 2016 - 11:15 |
Bonjour,
Je viens de faire des essais en modifiant mon code ainsi :
Procedure Vérifie_Structure_Fichiers() sNomUnFichier est une chaîne sListedesfichiers est une chaîne = "FichierA"+RC+"FichierB"+RC+"FichierC"+RC+"FichierD"+RC slistedeserreurs est une chaîne bErreurCopie est un booléen
fRepSupprime(fRepExe()+"\Temp\",frRécursif) fRepCrée(fRepExe()+"\Temp\") HFerme("*")
HVérifieStructure("*", hIdentique)
POUR TOUTE CHAINE sNomUnFichier DE sListedesfichiers SEPAREE PAR RC QUAND EXCEPTION DANS HCréationSiInexistant(sNomUnFichier) FAIRE SI HErreur(hErrEnCours) =70016 ALORS SI PAS fCopieFichier(PathBDD+"/"+sNomUnFichier+".fic",fRepExe()+"\Temp\"+sNomUnFichier+".fic",frRécursif) bErreurCopie = Vrai SI PAS fCopieFichier(PathBDD+"/"+sNomUnFichier+".ndx",fRepExe()+"\Temp\"+sNomUnFichier+".ndx",frRécursif) bErreurCopie = Vrai fCopieFichier(PathBDD+"/"+sNomUnFichier+".mmo",fRepExe()+"\Temp\"+sNomUnFichier+".mmo",frRécursif) SI PAS bErreurCopie ALORS fSupprime(PathBDD+"/"+sNomUnFichier+".fic") fSupprime(PathBDD+"/"+sNomUnFichier+".ndx") fSupprime(PathBDD+"/"+sNomUnFichier+".mmo") ToastAffiche("Mise à jour de la structure du fichier <"+ ... sNomUnFichier+"> en cours..."+fRepExe()+"\Temp\",toastCourt,cvMilieu,chCentre) HChangeRep(sNomUnFichier,fRepExe()+"\Temp\") SI PAS HModifieStructure(sNomUnFichier,hmsSansContrôle)ALORS slistedeserreurs+= [RC] + ... "- Erreur de modification de structure pour le fichier <"+ ... sNomUnFichier+"> : "+HErreurInfo() SINON bErreurCopie = Faux HFerme(sNomUnFichier) ToastAffiche(sNomUnFichier+" déplacement en cours...") SI PAS fCopieFichier(fRepExe()+"\Temp\"+sNomUnFichier+".fic",PathBDD+"\"+sNomUnFichier+".fic",frRécursif) bErreurCopie = Vrai SI PAS fCopieFichier(fRepExe()+"\Temp\"+sNomUnFichier+".ndx",PathBDD+"\"+sNomUnFichier+".ndx",frRécursif) bErreurCopie = Vrai fCopieFichier(fRepExe()+"\Temp\"+sNomUnFichier+".mmo",PathBDD+"\"+sNomUnFichier+".mmo",frRécursif) SI bErreurCopie ALORS Erreur("Erreur copie fichier "+sNomUnFichier+" depuis: "+fRepExe()+"/Temp/") FIN FIN SINON Erreur("Erreur copie fichier "+sNomUnFichier+" vers : "+fRepExe()+"/Temp/") FIN SINON slistedeserreurs+= [RC] +"- Erreur d'accès au fichier <"+ ... sNomUnFichier+"> : "+HErreurInfo() FIN FIN FIN SI slistedeserreurs <> "" ALORS Erreur("Erreur Modifications : "+RC+slistedeserreurs) FIN HChangeRep("*",PathBDD)
Aucune des fonction ne renvoie d'erreur ni sur la copie ni le Hmodifiestructure. Mais le fichier reste inchangé.
La seule chose que je ne peux pas vérifier c'est la création du dossier temp et la copie effective des fichiers dasn le dossier frepexe()/Temp.
Encore merci pour votre aide
Cezame |
| |
| |
| | | |
|
| | |
| |
Posté le 04 mai 2016 - 14:40 |
Bonjour
1. il manque des contrôles d'erreur un peu partout (par exemple, il faut faire si pas frepcree(xxx) alors info(errorinfo()) fin pareil sur TOUTES Les fonctions (hferme, hverifiestructure, etc)
2. on veut créer le répertoire temp, donc frepsupprime est inutile.
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com |
| |
| |
| | | |
|
| | |
| |
Posté le 04 mai 2016 - 15:38 |
Je vais intégrer tous les contrôles.
J'ai ajouté le frepsupprime au cas ou.
Je te tiens au courant du résultat.
Cezame |
| |
| |
| | | |
|
| | |
| |
Posté le 04 mai 2016 - 16:49 |
Voici le code avec tous les tests...
Procedure Vérifie_Structure_Fichiers() sNomUnFichier est une chaîne sListedesfichiers est une chaîne = "FichierA"+RC+"FichierB"+RC+"FichierC"+RC+"FichierD"+RC slistedeserreurs est une chaîne bErreurCopie est un booléen
fRepSupprime(fRepExe()+"\Temp\",frRécursif) SI PAS fRepCrée(fRepExe()+"\Temp\") ALORS Erreur(ErreurInfo()) RETOUR FIN HFerme("*")
HVérifieStructure("*", hIdentique)
POUR TOUTE CHAINE sNomUnFichier DE sListedesfichiers SEPAREE PAR RC QUAND EXCEPTION DANS HCréationSiInexistant(sNomUnFichier) FAIRE SI HErreur(hErrEnCours) =70016 ALORS bErreurCopie = Faux SI PAS fCopieFichier(PathBDD+"/"+sNomUnFichier+".fic",fRepExe()+"\Temp\"+sNomUnFichier+".fic",frRécursif) bErreurCopie = Vrai SI PAS fCopieFichier(PathBDD+"/"+sNomUnFichier+".ndx",fRepExe()+"\Temp\"+sNomUnFichier+".ndx",frRécursif) bErreurCopie = Vrai fCopieFichier(PathBDD+"/"+sNomUnFichier+".mmo",fRepExe()+"\Temp\"+sNomUnFichier+".mmo",frRécursif) SI PAS bErreurCopie ALORS bErreurSuppression = Faux SI PAS fSupprime(PathBDD+"/"+sNomUnFichier+".fic") bErreurSuppression = Vrai SI PAS fSupprime(PathBDD+"/"+sNomUnFichier+".ndx") bErreurSuppression = Vrai fSupprime(PathBDD+"/"+sNomUnFichier+".mmo") SI PAS bErreurSuppression ALORS ToastAffiche("Mise à jour de la structure du fichier <"+ ... sNomUnFichier+"> en cours..."+fRepExe()+"\Temp\",toastCourt,cvMilieu,chCentre) SI PAS HChangeRep(sNomUnFichier,fRepExe()+"\Temp\") ALORS Erreur(sNomUnFichier+" "+ErreurInfo()) FIN SI PAS HModifieStructure(sNomUnFichier,hmsSansContrôle)ALORS slistedeserreurs+= [RC] + ... "- Erreur de modification de structure pour le fichier <"+ ... sNomUnFichier+"> : "+HErreurInfo() SINON bErreurCopie = Faux HFerme(sNomUnFichier) ToastAffiche(sNomUnFichier+" déplacement en cours...") SI PAS fCopieFichier(fRepExe()+"\Temp\"+sNomUnFichier+".fic",PathBDD+"\"+sNomUnFichier+".fic",frConfirmer) bErreurCopie = Vrai SI PAS fCopieFichier(fRepExe()+"\Temp\"+sNomUnFichier+".ndx",PathBDD+"\"+sNomUnFichier+".ndx",frConfirmer) bErreurCopie = Vrai fCopieFichier(fRepExe()+"\Temp\"+sNomUnFichier+".mmo",PathBDD+"\"+sNomUnFichier+".mmo",frConfirmer) SI bErreurCopie ALORS Erreur("Erreur copie fichier "+sNomUnFichier+" depuis: "+fRepExe()+"/Temp/") FIN FIN SINON Erreur("Erreur suppression fichier "+PathBDD+"/"+sNomUnFichier) FIN SINON Erreur("Erreur copie fichier "+sNomUnFichier+" vers : "+fRepExe()+"/Temp/") FIN SINON slistedeserreurs+= [RC] +"- Erreur d'accès au fichier <"+ ... sNomUnFichier+"> : "+HErreurInfo() FIN FIN FIN SI slistedeserreurs <> "" ALORS Erreur("Erreur Modifications : "+RC+slistedeserreurs) FIN HChangeRep("*",PathBDD)
Aucune erreur généré sur aucune étape...
je pense que le HmodifieStructure n'a aucune action... De plus j'ai un fichier dont la structure est modifié qui n'est pas traité et si je lance l'affichage du fichier j'ai une erreur sur la description de fichier.
je pense que la fonction Hmodifiestructure ne fonctionne pas sous Android !
Est ce que vous voyez autre chose?
D'avance merci pour votre aide
Cezame |
| |
| |
| | | |
|
| | |
| |
Posté le 04 mai 2016 - 20:28 |
je pense que la fonction Hmodifiestructure ne fonctionne pas sous Android !
Est ce que vous voyez autre chose? Comme ca non, mais comme j'utilise hmodifiestructure sous android depuis longtemps et que ca a toujours marché très bien, sans même utiliser de sous répertoire, je sais qu ca peut fonctionner... pourquoi ca ne fonctionne pas dans ce cas, sans être sur le matériel pour débuguer....
Perso, j'aouterais des infos(xxx) à chaque étape (erreur ou pas) pour être sur des cas dans lesquels on passe.
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com |
| |
| |
| | | |
|
| | |
| |
Posté le 06 mai 2016 - 10:32 |
Bonjour,
Merci pour votre aide.
Je ne comprends surtout pas pourquoi si cela ne fonctionne pas je n'ai pas de message d'erreur en retour?
Je vais essayer de copier directement les fichiers dans la racine de l'exe.
J'ai vérifié par des infos la liste des fichiers dans le dossier de la BDD et le dossier Temp.
Une chose est sure, le frepsupprime() pour le dossier Temp dans le dossier de l'exe ne fonctionne pas. Aucune suppression.
La suppression d'un fichier lui fonctionne.
Le HmodifieStructure() ne revoie pas d'erreur. Et les copies se font bien dans les deux sens...
Cezame |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 37 messages Popularité : +1 (1 vote) |
|
Posté le 06 mai 2016 - 12:55 |
Bonjour, voici une partie d'un code qui fonctionne parfaitement sur de l'Androide. Mes fichiers se trouvent toujours sur une SDCard, mais même dans la mémoire interne cela devrait fonctionner. Je n'ai jamais eu besoin de faire une copie de fichier. Le HModifieStructure() se fait directement sur les fichiers originaux et il crée aussi automatiquement une sauvegarde du fichier dans un répertoire cRepBackup .
Je crois l'important est le HFerme(cVar1) juste AVANT le HModifieStructure(), car l'aide de HModifieStructure() dit: "Remarque : En mode hmsNormal ou hmsSansContrôle, le fichier de données manipulé ne doit pas être ouvert (par l'application ou par une autre application)." Et le HCréationSiInexistant() OUVRE le fichier s'il existe !
J'espère que ça vous aide.
LOCAL cListe,cVar1,cTxtErr est une chaîne cRepBackup est une chaîne bOk est un booléen gcRepData,gcExt est une chaîne
cRepBackup= ComplèteRep(gcRepData+"backup")
HChangeRep("*",gcRepData)
cTxtErr = "" cListe = [ FICHIER1 FICHIER2 FICHIER3 ]
POUR TOUTE CHAINE cVar1 DE cListe SEPAREE PAR RC SI PAS Vide(cVar1) ALORS QUAND EXCEPTION DANS
bOk = HCréationSiInexistant(cVar1) SI PAS bOk ALORS cTxtErr += [RC]+"HCréationSiInexistant("+cVar1+")"+RC+Répète("-",50)+RC+HErreurInfo()+[RC]+Répète("-",50) FIN FAIRE bOk = Faux cTxtErr += [RC]+"HCréationSiInexistant("+cVar1+")"+RC+Répète("-",50)+RC+ExceptionInfo()+[RC]+Répète("-",50) FIN SI PAS bOk ALORS bOk = Vrai HFerme(cVar1) Multitâche(-100) QUAND EXCEPTION DANS
SI PAS HModifieStructure(cVar1,hmsNormal,Null,cRepBackup) ALORS bOk = Faux cTxtErr += [RC]+"HModifieStructure("+cVar1+",hmsNormal,Null,"+cRepBackup+")"+RC+Répète("-",50)+RC+HErreurInfo()+[RC]+Répète("-",50) FIN FAIRE bOk = Faux cTxtErr += [RC]+"HModifieStructure("+cVar1+",hmsNormal,Null,"+cRepBackup+")"+RC+Répète("-",50)+RC+ExceptionInfo()+[RC]+Répète("-",50) FIN FIN FIN FIN HFerme("") FinProgramme()
-- Bonne journée
J. Feyen |
| |
| |
| | | |
|
| | |
| |
Posté le 23 mai 2016 - 17:02 |
Bonjour,
Merci de votre aide, j'ai essayé ce code et cela fonctionne à merveille.
Maintenant le passage en version 21 de mon application engendre des gros problèmes de plantage avec la gestion de tracés sur les cartes.
Le même code en qui fonctionne parfaitement en WM20 plante mon application en WM21 avec l'application s'est arrêtée.
Cezame |
| |
| |
| | | |
|
| | |
| |
Posté le 23 mai 2016 - 19:40 |
Bonjour Cezame,
Le même code en qui fonctionne parfaitement en WM20 plante mon application en WM21 avec l'application s'est arrêtée. Et que dit le support ?
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com |
| |
| |
| | | |
|
| | |
| |
Posté le 24 mai 2016 - 17:52 |
Bonjour,
J'ai contourné le problème en changeant ma séquence de rafraichissement et en optimisant mon code.
Cezame |
| |
| |
| | | |
|
| | |
| |
Posté le 16 avril 2018 - 22:18 |
Bonjour Cezame,
Merci de partager ce bout de code final car je suis dans le meme probleme et je galère grave
je suis debutant en windev mobile |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 messages |
|
Posté le 16 avril 2018 - 22:30 |
Bonjour Cezame,
Stp peux tu partager ce bout de code final ou procedure car j'ai le meme souci et je galere grave dessus.
je suis debutant en windev mobile |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 14 messages |
|
Posté le 19 octobre 2022 - 10:00 |
Bonjour, J'ai repris exactement le code de J.Feyen mais pour ma part cela ne fonctionne toujours pas.
Je précise que mon terminal mobile est sous Android 11 et que sur les versions précédentes d'Android je n'avais pas le souci. J'ai bien compris qu'il y avait désormais une question de droits à gérer, d'autant plus que ma base de données est stockée dans le dossier public "Documents" et non pas dans le dossier de l'application. Lors de la génération de mon application, j'ajoute bien les permissions Android MANAGE_EXTERNAL_STORAGE,READ_EXTERNAL_STORAGE et WRITE_EXTERNAL_STORAGE.
Voici mon code de changement de dossier de ma base :
Chemin_DATA est une chaîne
perm est une Permission = PermissionListe(permGestionStockageExterne) SI PAS perm.Accordé ALORS PermissionDemande(perm,procdemandepermission) PROCEDURE INTERNE procdemandepermission FIN FIN
SI SysEtatStockageExterne(1) = sseDisponible ALORS Chemin_DATA = SysRepStockageExterne(1,ssePublicDocument) SINON Erreur("Stockage externe (1) non disponible !") FinProgramme() FIN
SI fRepExiste(Chemin_DATA+fSep()+"Maquimobile") = Faux ALORS SI PAS fRepCrée(Chemin_DATA+fSep()+"Maquimobile") ALORS Erreur(ErreurInfo(errMessage)) FIN
Chemin_DATA = Chemin_DATA+fSep()+"Maquimobile"
HChangeRep("*",Chemin_DATA)
Ce code fonctionne très bien puisque ma base de données se trouve bien dans mon dossier public "Documents" mais la fonction hmodifiestructure ne fonctionne pas, j'ai pourtant bien reprise le code de J.Feyen :
POUR TOUTE chaîne sNomUnFichier de liste_fichiers SEPAREE PAR RC QUAND EXCEPTIONEXCEPTION DANS bOk = HCréationSiInexistant(sNomUnFichier) SI PAS bOk ALORS FIN FAIRE bOk = Faux FIN SI PAS bOk ALORS bOk = Vrai HFerme(sNomUnFichier) Multitâche(-100) QUAND EXCEPTIONEXCEPTION DANS SI PAS HModifieStructure(sNomUnFichier,hmsTâcheDeFond) ALORS bOk = Faux sListeDesErreurs += [RC]+"HModifieStructure("+sNomUnFichier+",hmsNormal,Null,"")"+RC+Répète("-",50)+RC+HErreurInfo()+[RC]+Répète("-",50) FIN FAIRE bOk = Faux sListeDesErreurs += [RC]+"HModifieStructure("+sNomUnFichier+",hmsNormal,Null,"")"+RC+Répète("-",50)+RC+ExceptionInfo()+[RC]+Répète("-",50) FIN FIN FIN
SI sListeDesErreurs <> "" ALORS Erreur("Erreur à l'ouverture des fichiers de données !"+RC+sListeDesErreurs) FinProgramme() FIN
A l'ouverture de mon application je reçois donc l'erreur suivante : "Erreur à l'ouverture des fichier de données ! HModifieStructure(PERSONNE,hmsNormal,Null,") Impossible de renommer le fichier </storage/emulated/0/Documents/Maquimobile/personne.fic> en </storage/emulated/0/Android/data/fr.societe.maquimobile/cache/hfou3NWL>. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 328 messages |
|
Posté le 19 octobre 2022 - 11:08 |
Salut,
https://doc.pcsoft.fr/fr-FR/?3044144&name=Constantes_Hyper_File Regarde ce qu'il disent sur la constante hmsTâcheDeFond que tu utilises. Ca semble réservé au mode C/S. Je pense que tu devrais utiliser hmsNormal ou hmsSansContrôle. D'ailleurs tu fermes bien le fichier juste avant le HmodifieStructure, ce qui ne serait pas cohérent avec une opération "à chaud". |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 14 messages |
|
Posté le 19 octobre 2022 - 13:17 |
J'ai essayé les 3 modes, hmsNormal, hmsSanscontrôle et hmsTachedefond mais ça ne change rien |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 14 messages |
|
Posté le 19 octobre 2022 - 14:04 |
En fait il semblerait que la fonction hmodifiestructure fasse une sauvegarde du fichier d'origine dans dossier "cache" contenu dans le dossier de l'application alors que ma base de données est dans le dossier public "Documents", et c'est là que ça coince mais je ne vois pas comment contourner ça... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 328 messages |
|
Posté le 19 octobre 2022 - 14:17 |
Il y a autre chose qui m'a parfois occasionné des problèmes avec les fichiers de données : ce sont les requête non libérées. Ca n'a peut-être rien à voir, mais peut-être qu'une ressource non libérée se trouve justement dans ce cache. Tout HExécuteRequête ou HExécuteRequêteSQL doit avoir en face un HAnnuleDéclaration ou un HLibèreRequête. Attention, si la ressource n'est pas libérée avant la sortie de là où elle est déclarée, elle ne sera définitivement pas libérée, seule une sortie de l'appli remettra les choses en ordre. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 14 messages |
|
Posté le 19 octobre 2022 - 15:30 |
Mon code est situé vraiment au démarrage de mon projet, aucune requête n'a encore été lancée. D'ailleurs je ferme même les fichiers avant de lancer le Hmodifiestructure() donc le problème vient d'ailleurs ... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 328 messages |
|
Posté le 19 octobre 2022 - 16:52 |
2 questions : - As-tu essayé de faire un HChangeRep() explicitement (histoire de lui forcer un peu la main) ? - As-tu testé le résultat du HCréationSiInexistant() (je vois que c'est commenté)
Tu peux aussi vérifier le dossier avec NomDeTonFichier.Nom (ou pour toi {sNomUnFichier,indFichier}.Nom) |
| |
| |
| | | |
|
| | |
| |
Posté le 23 novembre 2022 - 17:58 |
Bonsoir,
J'ai exactement le même problème sous Android 11.
Impossible de modifier la structure des table avec HModifieStructure()
Quelqu'un aurat-il une solution? Merci. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 328 messages |
|
Posté le 24 novembre 2022 - 11:48 |
voir dans cette page le test sur le n° d'erreur : https://doc.pcsoft.fr/fr-FR/?1000021445&name=hmodifiestructure_exemple
Mon code qui fonctionne en WM26 jusqu'à Android 12 :
QUAND EXCEPTIONEXCEPTION DANS SI PAS HCréationSiInexistant(pNomLogiqueFichier) ALORS SI HErreur() ALORS Erreur("HCréationSiInexistant",HErreurInfo()) SINON FIN SINON bOk = Vrai FIN FAIRE bOk = Faux SI ExceptionInfo(errCode) = 70016 ALORS SI PAS HModifieStructure({pNomLogiqueFichier,indFichier},hmsSansContrôle) ALORS Erreur("La structure du fichier "+pNomLogiqueFichier+" n'a pas pu être mise à jour.", HErreurInfo(hErrComplet)) SINON bOk = Vrai FIN FIN FIN |
| |
| |
| | | |
|
| | |
| |
Posté le 24 novembre 2022 - 17:36 |
L'indirection est une bonne idée...malheureusement ça ne fonctionne toujours pas.
Pour résumer: J'ai une base HFSQL sur le téléphone de 50 tables. Je modifie sur le PC la table n°6 (rajout d'un champ texte) Je compile, je déploie => le table 6 n'est pas mise à jour. Pas de message d'erreur. En tracant, je m'aperçois que les 5 premières table sont examinées, mais que la table 6 fait sortir de la boucle. Les 44 tables suivantes ne sont pas examinées.
Toujours pas de solution... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 328 messages |
|
Posté le 25 novembre 2022 - 08:36 |
Désolé d'insister : est-ce que tu récupères le code erreur dans le QUAND EXCEPTION est quel est-il (ExceptionInfo(errCode)) ? |
| |
| |
| | | |
|
| | |
| |
Posté le 25 novembre 2022 - 08:52 |
Merci pour le temps...
Et bien non justement, aucun message d'erreur...!!!
Il passe bien dans ExceptionInfo(errCode) = 70016, mais il y a sortie de boucle...sur la table modifiée. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 328 messages |
|
Posté le 25 novembre 2022 - 10:14 |
Quelque-soit le paramètre de HModifieStructure (la constante hmsXXXX) ? Peut-être aussi que l'opération se fait en arrière plan : une petite temporisation (style Multitâche(-100)) serait à tenter entre chaque fichier.
Sinon j'ai une autre idée. Une ré-indexation préalable pourrait peut-être résoudre le problème ... |
| |
| |
| | | |
|
| | |
| |
Posté le 25 novembre 2022 - 11:37 |
Quelque soit la constante hmsXXXX, cela ne change rien
J'ai rajouté des tempo, toujours rien.
En fait dès qu'une table dont la structure n'est pas identique, code: 70016, on sort du code de vérification.
FAIRE bOk = Faux SI ExceptionInfo(errCode) = 70016 ALORS FichierLog("0.Flag:" + bOk) Multitâche(-100) SI HRéindexe({sNomUnFichier,indFichier}, hNdxNormal) = Faux ALORS Erreur(HErreurInfo(hErrComplet)) FichierLog(HErreurInfo(hErrComplet)) SINON FichierLog("1.Flag:" + bOk) FIN Multitâche(-100) SI PAS HModifieStructure({sNomUnFichier,indFichier},hmsSansContrôle) ALORS Erreur("La structure du fichier "+sNomUnFichier+" n'a pas pu être mise à jour.", HErreurInfo(hErrComplet)) FichierLog(HErreurInfo(hErrComplet)) SINON FichierLog("La structure du fichier "+sNomUnFichier+" a été mise à jour.") bOk = Vrai FIN FichierLog("2.Flag:" + bOk) FIN FIN
Pour mettre à jour 100 téléphones, c'est la galère
Peut être la surcouche Samsung?? |
| |
| |
| | | |
|
| | |
| |
Posté le 25 novembre 2022 - 11:53 |
La sortie LOG donne ça
2022112511492723 - 1-|-Table1 2022112511492724 - 2-|-Table2 2022112511492726 - 3-|-Table3 2022112511492727 - 4-|-Table4 2022112511492729 - 5-|-Table5 2022112511492731 - 6-|-Table6 2022112511492734 - 0.Flag:0
en fin de Procédure j'ai:
SINON FichierLog("La structure du fichier "+sNomUnFichier+" a été mise à jour.") bOk = Vrai FIN FichierLog("2.Flag:" + bOk) FIN FIN FIN FichierLog("3.Flag:" + bOk) HFerme("*") RENVOYER bOk
Le code FichierLog("3.Flag:" + bOk) n'est même pas executé!! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 328 messages |
|
Posté le 25 novembre 2022 - 12:26 |
Regarde ce qu'avait codé @Emmanuel MILLOT : il avait AUSSI mis le HModifieStructure dans un QUAND EXCEPTION. Tu peux ré-essayer en retirant la réindexation et en ajoutant ce 2ème niveau de gestion d'exception. Ce serait intéressant de savoir où il en est à sujet d'ailleurs.
Je pense à autre chose, la connexion à la base donne-t-elle les droits d'accès nécessaires aux fichiers à traiter avec HModifieStructure ? |
| |
| |
| | | |
|
| | |
| |
Posté le 25 novembre 2022 - 15:53 |
Il est interdit de déclarer un traitement d'exception à l'intérieur d'un autre traitement d'exception...
Si je mets tout seul, sans SI ExceptionInfo(errCode) = 70016 ALORS
HModifieStructure({sNomUnFichier,indFichier},hmsSansContrôle)
même chose, dès que le code examine une table avec structure modifié, il sort...et continue sans planter!!!
La table n'est pas modifiée. Que ce soit avec : hmsNormal, hmsSansContrôle ou hmsTâcheDeFond
J'ai même essayé un
HModifieStructure("*",hmsSansContrôle) directement dans le code, ça ne fait strictement rien...même pas une erreur!! |
| |
| |
| | | |
|
| | |
| |
Posté le 25 novembre 2022 - 16:04 |
PC Soft me répond: Il n'est as nécessaire de tester si la structure des fichiers et valide ou non, la fonction HModifieStructure fera le nécessaire...
OK, mais j'avis enlevé le HVérifieStructure("*", hIdentique)
C'est l'impasse du vendredi soir... |
| |
| |
| | | |
|
| | |
| |
Posté le 25 novembre 2022 - 16:49 |
J'ai utilisé le code de @Emmanuel MILLOT
POUR TOUTE chaîne sNomUnFichier de sListeFichier SEPAREE PAR RC QUAND EXCEPTIONEXCEPTION DANS bOk = HCréationSiInexistant(sNomUnFichier) SI PAS bOk ALORS
FIN FAIRE bOk = Faux FIN SI PAS bOk ALORS bOk = Vrai HFerme(sNomUnFichier) Multitâche(-100) QUAND EXCEPTIONEXCEPTION DANS SI PAS HModifieStructure({sNomUnFichier,indFichier},hmsTâcheDeFond) ALORS bOk = Faux sListeDesErreurs += [RC]+"1.HModifieStructure("+sNomUnFichier+",hmsNormal,Null,"")"+RC+Répète("-",50)+RC+HErreurInfo()+[RC]+Répète("-",50) FIN FAIRE bOk = Faux sListeDesErreurs += [RC]+"2.HModifieStructure("+sNomUnFichier+",hmsNormal,Null,"")"+RC+Répète("-",50)+RC+ExceptionInfo()+[RC]+Répète("-",50) FIN FIN FIN
Et effectivement j'ai une erreur au sujet de ma Table6 à structure différente: Impossible de renommer le fichier dans le cache |
| |
| |
| | | |
|
| | |
| |
Posté le 20 décembre 2022 - 10:35 |
Bonjour STZ, As-tu fini par trouver la solution pour ce foutu hmodifiestructure qui ne fonctionne pas ? Moi je suis toujours dans l'impasse pour info... |
| |
| |
| | | |
|
| | |
| |
Posté le 27 décembre 2022 - 13:38 |
Bonjour,
Voici un petit bout de code qui fonctionne chez moi.
Perm1 est une Permission Perm1 = PermissionListe(permGestionStockageExterne) SI PAS Perm1.Accordé ALORS PermissionDemande(Perm1, ProcDemandePermission) Multitâche(-5s) FIN
Perm1 = PermissionListe(permEcritureStockageExterne) SI PAS Perm1.Accordé ALORS PermissionDemande(Perm1, ProcDemandePermission) Multitâche(-5s) FIN
SI nEtat1 = sysCarteDisponible ALORS sRep = SysRepCarteStockage() FIN sRep = sRep +[fSep()] + "Danae_Mobile" SI PAS fRépertoireExiste(sRep) ALORS fRepCrée(sRep) FIN
ToastAffiche("Lancement de la modification des fichiers",toastCourt,cvMilieu,chCentre) SI PAS fRépertoireExiste(sRep+"\backup\") ALORS SI PAS fRepCrée(sRep+"\backup\") ALORS ToastAffiche("Problème de création du backup") RETOUR FIN FIN HFerme("*") HChangeRep("*",sRep) fSupprime(sRep+"\backup\*.*",frLectureSeule)
HModifieStructure( "*" ,hmsNormal,"1Pass4DB*",sRep+"\backup\")
En espérant vous avoir aidé. |
| |
| |
| | | |
|
| | |
| |
Posté le 02 janvier 2023 - 11:41 |
Bonjour et boçnne année!!
Je vais tester ce bout de code.
En réponse, et non je n'ai toujours pas réussi à modifier atomatiquement mes structures de tables!!! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 965 messages Popularité : +16 (20 votes) |
|
Posté le 03 janvier 2023 - 10:42 |
Salut à tous Je prends le fil en route. Une question ; tu utilises quelle version de Android ? En effet, jusqu'à Android 10, si l'on prenait soin d'installer ses bases dans un dossier isolé de ceux de l'application, après que celle-ci ait été réinstallée (nouvelle version avec éventuellement des modifications dans le schéma de la base) HmodifieStructure avait tout son sens car on pouvait reconnecter son ancienne base et la mettre à jour. Depuis Android 11 (voir https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windevmobile/43782-conservation-fichiers-entre-deux-installations-reve-pas/read.awp…), on ne peut plus isoler ses bases en dehors de l'espace de l'application. La base est donc supprimée lors des réinstallations. C'est bien dommage mais malheureusement c'est comme çà. Comme la base est récréée à chaque installation, on n'a plus besoin d'utiliser hmodifiestructure.
-- Pascal Boulesteix Applications Visiolittoral et WNat |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 797 messages Popularité : +40 (42 votes) |
|
Posté le 03 janvier 2023 - 14:12 |
Bonjour, si vous mettez à jour l'application, la base de données n'est pas supprimée. Donc hmodifiestructure est nécessaire si vous avez mis à jour sa structure.
Rubén |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 965 messages Popularité : +16 (20 votes) |
|
Posté le 03 janvier 2023 - 17:17 |
Ah OK, Personnellement, sauf pour les tests internes, je n'ai jamais eu de bouton "Mettre à jour".
-- Pascal Boulesteix Applications Visiolittoral et WNat |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 797 messages Popularité : +40 (42 votes) |
|
Posté le 09 janvier 2023 - 18:23 |
Bonjour, mise à jour du bouton ? Je pensais que la mise à jour se faisait depuis le Google Play Store. Lorsque vous le mettez à jour à partir de là, vous n'avez rien d'autre à faire. Il conserve vos données et vous pouvez utiliser hmodifiestructure si nécessaire. Si vous faites une mise à jour manuelle et que c'est la même application, il ne devrait pas y avoir de problème non plus.
Rubén |
| |
| |
| | | |
|
| | |
| |
Posté le 12 janvier 2023 - 11:36 |
Bonjour,
Personnellement lors d'une modification de structure (changement de type, nouvelle table...) et le déploiement via un apk, la base ne se met pas à jour. Mon application est dans le répertoire Phone, et non Card, tout comme la base de données. C'est hyper gênant, aux vues des nouvelles modifications que je mets en place régulièrement. Je suis obligé, de resynchroniser la base de chaque téléphone (un parc de 120 tél !!!), sur mon PC à chaque fois.
Ou je suis passé à côté d'une solution, ou c'est vraiment aberrant en 2023 de devoir procéder de la sorte.
A suivre... |
| |
| |
| | | |
|
| | |
| |
Posté le 12 janvier 2023 - 11:36 |
Bonjour,
Personnellement lors d'une modification de structure (changement de type, nouvelle table...) et le déploiement via un apk, la base ne se met pas à jour. Mon application est dans le répertoire Phone, et non Card, tout comme la base de données. C'est hyper gênant, aux vues des nouvelles modifications que je mets en place régulièrement. Je suis obligé, de resynchroniser la base de chaque téléphone (un parc de 120 tél !!!), sur mon PC à chaque fois.
Ou je suis passé à côté d'une solution, ou c'est vraiment aberrant en 2023 de devoir procéder de la sorte.
A suivre... |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|