Aide - Recherche - Membres - Calendrier
Version complète : Evolution structure table en cours de vie
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS > Développement HB++
palmgaulois
Hello,

Je suis en période de debugage d'un nouveau logiciel , et mon client-test à déjà quantité de données dans ses Palm (2 aujourd'hui et 8 semaines prochaine)
le pb est que pour mes besoins d'évolution de fonction je dois de tant en tant ajouter des champs aux bases de donnée existante (Palm + Access),
ça m'oblige à récupérer ses données des Palm en service, et les modifier puis les réintégrer dans les Palm et dans la base Access (commune aux 8 utilisateurs) du client.

quand ça vous arrive ou si ça devait vous arriver quelle méthode emploierez vous ?

j'ai penser à coté palm :

1° définir depuis l'ide une table "clone" de l'existant dans lequel j'ajoute mes évolutions.
2° sous forme de patch, le logiciel au lancement copie les record de l'ancienne vers la nouvelle structure,
3° supprime l'ancienne structure,
4° la recréer en dynamique (comment ??)
5° copier le clone vers la nouvelle structure..., vider le clone ou le supprimer.

bref je pattoge







D2P
Perso j'ai fait cela :
1/ Définition d'une nouvelle table,
2/ Module qui au lancement copie les enregistrements de l'ancienne dans la nouvelle,
3/ Effacement de l'ancienne table.
palmgaulois
la def. de la nouvelle table tu la fais par programmation ? comment
ensuite pour continuer de synchroniser le` palm et access il faut que le nom des tables reste identique ...
je suis en train de tester une autre voie
D2P
Non je fais la def en dur anim_wink.gif

Et du coup je ne garde pas le même nom de table anim_sorry.gif
poolpy
CITATION(palmgaulois @ 12/11/2007 à 12:12 ) *
Hello,

Je suis en période de debugage d'un nouveau logiciel , et mon client-test à déjà quantité de données dans ses Palm (2 aujourd'hui et 8 semaines prochaine)
le pb est que pour mes besoins d'évolution de fonction je dois de tant en tant ajouter des champs aux bases de donnée existante (Palm + Access),
ça m'oblige à récupérer ses données des Palm en service, et les modifier puis les réintégrer dans les Palm et dans la base Access (commune aux 8 utilisateurs) du client.

quand ça vous arrive ou si ça devait vous arriver quelle méthode emploierez vous ?

j'ai penser à coté palm :

1° définir depuis l'ide une table "clone" de l'existant dans lequel j'ajoute mes évolutions.
2° sous forme de patch, le logiciel au lancement copie les record de l'ancienne vers la nouvelle structure,
3° supprime l'ancienne structure,
4° la recréer en dynamique (comment ??)
5° copier le clone vers la nouvelle structure..., vider le clone ou le supprimer.

bref je pattoge


Si tu ne veux pas définir deux tables (une avec l'ancienne structure, une avec la nouvelle), voici quelques alternatives :

- Option 1 : tu crées une nouvelle table qui contient les mêmes clés, et juste les nouveaux champs. Quand tu ajoutes un enregistrement, tu ajoutes une entrée à la fois dans l'ancienne table et dans la nouvelle pour les champs nouveaux (Beuark).

- Option 2 : tu modifies la structure de ta table, et tu convertis ta vieille table au lancement de l'application. Comment accéder à ta vieille table si la structure a changé ? En suivant la description du format "brut" retenu par HB++ pour stocker ses données -> http://www.handheld-basic.com/forum/viewtopic.php?t=49 et en lisant ta vieille table comme une bête RecordDB dont tu désérialiseras tous les enregistrements.
palmgaulois
Bon j'ai un patch qui fonctionne coté Palm.
au passage je précise que j'utilise le fabuleux nutshell pour empacter mes distrib et les auto-lancer ce qui permet de ne pas trop compter sur l'utilisateur pour la manoeuvre.

alors j'ai dans mon
progfinal ajouté une table via l'ide qui s'appel dbclone avec les champs nécessaire en plus (j'ai même prévu du rab.)
via un compteur dans les préférences, et un do case au lancement je sais à quel étape je me place.

patch 1, contient la description structure de db < dbclone:
creation dbclone
case etape 1
copie de db vers dbclone,
suppression de db
etape = etape +1
lancement de patch2


patch2, (zip de mon progfinal)
contient la description structure de db = dbclone:
comme db est supprimé (étape 1) : recréation avec structure finale
case etape 2
copie de dbclone vers db
suppression de patch1


patch0.prc = zip de patch1 + patch2 [progfinal] et lancement auto patch1 et suppression patch0 après lancement

coté Access,
je prend en main à distance le pc avec CrossLoop (gratuit) et modifie à la main la structure de la table db, de même que j'install le nouveau conduit.
une chance que le pc soit relié au net.

j'espère être clair wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.