IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

comment changer la structure du fichier physique sans perdre les données


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut comment changer la structure du fichier physique sans perdre les données
    Bonjour
    Comment mettre à jours une base de donnée d'une structure par une structure nouvelle?
    exemple:
    Ancienne structure (qui contient des données):
    Client(id,prénom,nom,tel)

    Nouvelle structure
    Client(id,pnom,nom,civilité,tel,adresse,...)

    Donc comment changer la structure du fichier physique sans perdre les données.
    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    tout ça ne peut se faire que application fermée bien sûr.

    Le mieux est de passer par un projet intermédiaire qui aura une analyse toute bête de 2 tables, celle en cours dans le projet principal et une table intermédiaire dans laquelle les données seront transférées provisoirement. Ensuite, tu génères un bout de code qui fait ce transfert et tu le lances pour remplir ta table intermédiaire. Bien vérifier que le nombre d'enregistrements présent dans la table intermédiaire est bien le même que dans la table principale et que les données sont identiques.

    Dans le projet principal, tu modifies ton analyse pour avoir une table Client qui correspond à ton besoin. Tu sauvegardes tes fichiers de données et tu les enlèves du répertoire. Ensuite tu crées les nouveaux fichiers correspondant à ta nouvelle table. Dans ton projet intermédiaire, tu modifies ton analyse pou pointer vers la nouvelle table et non plus l'ancienne et tu écris un bout de code qui copie tes données de ta table intermédiaire vers ta nouvelle table.

    Normalement, tu ne devrais perdre aucune donnée. Avant de faire quoi que ce soit, il faut faire des sauvegardes de tout : projet et données.

    Si tout s'est bien passé et que ton transfert de données a bien fonctionné, il faudra pensé à refaire l'exe pour que les utilisateurs pointent vers la bonne analyse ...

    à bientôt,

    Nicolas

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 136
    Points : 241
    Points
    241
    Par défaut
    Il faut regarder le module WDModFic (cf aide windev).

    Cela permet d'appliquer les modifications de la structures des données comme le fait la partie Analyse de Windev.

    Je trouve cela assez lourd à manier mais c'est la seule solution que je connais.

  4. #4
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    J'utilise WDModFich en ligne de commande :
    lors du lancement le l'appli, si j'ai une erreur de discordance entre l'analyse de l'appli et les données réelles, je lance WDModFich en ligne de commande pour que ce dernier mette a jour la base de données selon la nouvelle analyse.

    Pour ce faire, il faut bien entendu livrer WDModFich avec l'application cliente (je la mets directement dans l'installeur), ainsi lors des mises a jours, je crée une installation toute simple avec InnoSetup qui se contente de remplacer l'exe et le *.wdd déjà présent dans le répertoire. Ensuite l'application se met a jour toute seule lors du premier lancement.

    Bonne journée

    Olivier

  5. #5
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut
    Complément conceptuel utile :
    j'ai classé dans mes projets 3 types de fichiers :
    les fichiers normaux issus du modèle.
    les fichiers temporaires (toujours) issus du modèle ou décrit en dynamique dont l'usage dépasse la session utilisateur (la durée de l'exécution du programme : ils sont réutilisable)
    les fichiers strictement temporaire dont l'usage est inférieur à la sessions d'exécution du programme.

    pour les premiers : pas de soucis : wdmodfic avec la mise à jour du projet quand l'analyse évolue

    pour les suivant : j'utilise aussi l'analyse et un mécanisme d'alias pour les passer en temporaire. Ainsi, une mise à jour de l'analyse les modifiera aussi. et cela permet de résoudre justement le pb impliqué par des modification de structure avec persistance des données.

    enfin, pour les temporaire : on a carte blanche car ils sont supprimé ou écrasé à l'usage.

    Conclusion : si votre fichier comporte des données à durée de vie qui dépasse l'exécution de votre programme : utiliser une description de l'analyse et les propriété de vos fichiers (répertoire et nom physique). ainsi, lors des modifications de structure wdmodfic fonctionne avec les données contenues.

    Sinon : prévoyez un export txt, la création du fichier dans la nouvelle structure et un import (HImporteTexte)

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/05/2013, 12h14
  2. Réponses: 3
    Dernier message: 28/05/2012, 16h53
  3. ecrire dans fichier tesxte sans ecrasé les données
    Par zaki_1982 dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 28/04/2008, 00h41
  4. [phpMyAdmin] réinstaller phpMyAdmin sans perdre les données
    Par jul.oob dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 03/05/2007, 15h26
  5. Mise à jour BDD sans perdre les données
    Par penchu dans le forum Accès aux données
    Réponses: 4
    Dernier message: 07/02/2007, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo