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 :

Suppression doublons BDD


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 80
    Par défaut Suppression doublons BDD
    Bonjour à tous,

    J'ai une application qui utilise une BDD Hyperfile qui doit être alimentée par des imports successifs de fichier csv.

    Pour les imports, tout est ok, j'en profite pour ajouter des données et faire des calculs.

    Mon soucis arrive au moment ou je veux vérifier la présence ou non de doublons dans la BDD et les supprimer si il y en a.
    En fait il n'y a pas de clé unique dans les imports.
    De nombreuses valeurs peuvent se trouver en communs de différentes lignes.

    Je voudrais donc supprimer les lignes TOTALEMENT identiques (sur 164 colonnes).

    Que me conseillez vous afin de perdre le moins de temps possible et évidement d'obtenir un fichier propre ?

    Voilà ce que j'ai tenté sans succès :

    //On copie toutes les valeurs trouver dans la requête - la requête copie toutes les valeurs mais supprime les doublons
    HExécuteRequête(REQ_BaseSansDoublons)

    // On efface toute la BDD "BaseCopie" et on y intègre la requête sans doublons pour effacer les doublons si il y a eu plusieurs imports des mêmes données
    HCréation(BaseCopie)

    //Maintenant on ajoute les données dans le fichier "BaseCopie"
    HLitPremier (REQ_BaseSansDoublons) // Charge en mémoire les données du premier enregistrement du fichier

    TANTQUE PAS HEnDehors(REQ_BaseSansDoublons)

    //Il faut copier toutes les valeurs !!! ICI LA COPIE fonctionne mais je n'obtiens que des 0 et seulement pourcertaines colonnes ...
    HCopieEnreg(BaseCopie,REQ_BaseSansDoublons,hValDéfaut)

    HRAZ(BaseCopie)
    HAjoute(BaseCopie)

    HLitSuivant (REQ_BaseSansDoublons)
    TableAffiche(TABLE_BaseCopie,taInit)

    FIN

    //On efface la BDD de Base
    HCréation(Base)

    //Maintenant on ajoute les données
    HLitPremier (BaseCopie) // Charge en mémoire les données du premier enregistrement du fichier

    TANTQUE PAS HEnDehors(BaseCopie)

    HCopieEnreg(Base,BaseCopie)

    HRAZ(Base)
    HAjoute(Base)

    HLitSuivant (BaseCopie)

    TableAffiche(TABLE_Base,taInit)

    FIN
    Merci d'avance pour votre aide qui est toujours très précieuse.

    Justine.

  2. #2
    Membre très actif Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Par défaut
    Bonsoir,
    si j'étais vous je créerai une procédure qui s'appellerait doublonTraitement qui parcourirait l'ensemble des "fichiers" de la base avec chaque rubrique , et ce grace à la fonction HGEREDOUBLON.
    Cela peut prendre du temps, mais une fois la procédure est lancée, vous êtes sur qu'après son exécution, vous viendrez à bout des doublons.


    cordialement++

  3. #3
    Membre actif Avatar de NetLandGim
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Mars 2011
    Messages : 97
    Par défaut DOUBLON?
    Tes doublons portent sur quoi
    Dans une base relationnelle, un doublon portent sur des colonnes ou des couples de colonnes.
    N'oublie pas de fixer des contraintes d'unicités sur la BDD.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 80
    Par défaut
    Bonjour,

    Merci pour vos réponses.

    En fait si j'ai tenté de faire cette manipulation qui n'est pas très "propre c'est que j'ai tenté de créer une clé composée (sur 22 colonnes).

    Je n'arrive ni :
    à la voir (lorsque je fais l'intgration de mon fichier csv toutes la colonne cléComp est vide)
    à la faire fonctionner (les doublons sont tous intégrés si la clé composée et clé avec doublon et 1 seule ligne est intgrée avant erreur si la clé est clé unique).

    Donc j'en conclu que toutes les valeurs de cette clés doivent être nulles ...

    PaulNero, je vais intégrer à chaque fois plusieurs milliers de lignes, faire une procédure qui contrôle tout ne va pas vraiment ralentir l'appli ?

    Je doit construire un Trigger ?

    J'ai aussi essayé en intégrant ce code à la fin de ma boucle :
    HGèreDoublon(Base,CleComp,Vrai)
    //HAjoute(bASE)
    SI HAjoute(Base) = Faux ALORS
    SI HErreurDoublon() = Vrai ALORS
    sNomRub est une chaîne
    sNomRub = HErreurInfo(hErrRubrique)
    Erreur("Doublon : cet enregistrement ne peut pas être ajouté", ...
    "Rubrique associée à l'erreur : "+ sNomRub, ...
    FIN
    FIN
    Mais si j'intègre 2 fois le même fichier rien ne se passe, je me retrouve avec le fichier en double dans ma base...

    Merci pour votre aide.

Discussions similaires

  1. [Source] Trieur de Doublons, BDD Access / Excel
    Par mortalino dans le forum Vos contributions VB6
    Réponses: 5
    Dernier message: 23/03/2007, 16h37
  2. Trigger pour suppression doublons ds table
    Par lg_gaelle dans le forum PL/SQL
    Réponses: 2
    Dernier message: 18/10/2006, 15h53
  3. Suppression doublon Table
    Par francois78 dans le forum Access
    Réponses: 11
    Dernier message: 13/06/2006, 16h16
  4. Suppression doublons
    Par osmoze dans le forum Oracle
    Réponses: 2
    Dernier message: 26/04/2006, 13h17
  5. [MySQL] Problème de syntaxe dans suppression doublons
    Par fred23195 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 13/04/2006, 15h45

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