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

Bases de données Delphi Discussion :

Pb de tri sur treeview appelant table sous mysql


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut Pb de tri sur treeview appelant table sous mysql
    Bonjour, j'ai juste un léger pb

    J'ai une arborescence appelé par base de données.

    Le probleme c'est que ma table (sous mysql) n'est pas bien filtré et on se retrouve avec des doublons:

    Par exemple:

    A B
    A B
    A C
    A B

    au lieu d'avoir:

    A B
    A B
    A B
    A C

    et cela sur 6 niveaux......


    Comment donc pouvons nous trier la table de maniere à bien tout rassembler.....

    Merci bcp!

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Avec une requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select MonChampIndex,MonChamp2 from LaTable
    Order by MonChampIndex,MonChamp2
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    je te montre la creation de ma table et des insertions en SQL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    CREATE TABLE `arbo_bb37000` (
      `ID_Engin_FK3` varchar(15) NOT NULL,
      `Module_N1` varchar(40) NOT NULL,
      `Module_N2` varchar(50) NOT NULL,
      `Module_N3` varchar(60) NOT NULL,
      `Module_N4` varchar(60) NOT NULL,
      `Module_N5` varchar(60) NOT NULL,
      `Module_N6` varchar(60) NOT NULL,
      `Code_Piece` varchar(25) NOT NULL,
      `Nb_Piece` smallint(6) NOT NULL,
      `Nom_Pas_FK1` varchar(15) NOT NULL,
      `Operation_M` varchar(25) NOT NULL,
      `Prix` float NOT NULL,
      `MTBF` float NOT NULL,
      `Duree_Operation` float NOT NULL,
      `Nb_MOE` int(11) NOT NULL,
      `Cout_Conso` float NOT NULL,
      `Index_FL_FK1` varchar(30) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- 
    -- Contenu de la table `arbo_bb37000`
    -- 
    
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE PANTOGRAPHE', 'MODULE PANTOGRAPHE CONTINU 1.5 KV', 'Module tête de captage continue', 'Archet', 'ArPT1500', 1, 'VL', 'Nettoyage', 20, 0, 0.2, 2, 10, 'AA');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE PANTOGRAPHE', 'MODULE PANTOGRAPHE CONTINU 1.5 KV', 'Module tête de captage continue', 'Archet', 'ArPT1500', 1, 'VG', 'Remplacement', 20, 0, 0.2, 2, 100, 'AA');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE PANTOGRAPHE', 'MODULE PANTOGRAPHE MONOPHASE 25 KV', 'Module tête de captage monophasée', 'Archet', 'ArPT1500', 1, 'VL', 'Nettoyage', 20, 0, 0.2, 2, 10, 'AA');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE PANTOGRAPHE', 'MODULE PANTOGRAPHE MONOPHASE 25 KV', 'Module tête de captage monophasée', 'Archet', 'ArPT1500', 1, 'VG', 'Remplacement', 20, 0, 0.2, 2, 100, 'AA');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE PANTOGRAPHE', 'MODULE PANTOGRAPHE MONOPHASE 25 KV', 'Module tête de captage monophasée', 'Amortisseur de captage', 'ArPT1500', 1, 'VL', 'Nettoyage', 20, 0, 0.2, 2, 10, 'AA');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE PANTOGRAPHE', 'MODULE PANTOGRAPHE MONOPHASE 25 KV', 'Module tête de captage monophasée', 'Amortisseur de captage', 'ArPT1500', 1, 'VG', 'Nettoyage', 20, 0, 0.2, 2, 10, 'AA');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE PANTOGRAPHE', 'MODULE PANTOGRAPHE MONOPHASE 25 KV', 'Module tête de captage monophasée', 'Archet', 'ArPT1500', 1, 'VL', 'Nettoyage', 20, 0, 0.2, 2, 10, 'AA');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE PANTOGRAPHE', 'MODULE PANTOGRAPHE MONOPHASE 25 KV', 'Module tête de captage monophasée', 'Archet', 'ArPT1500', 1, 'VG', 'Nettoyage', 20, 0, 0.2, 2, 10, 'AA');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE TRAVERSE DE TOITURE', 'MODULE TRAVERSE DE TOITURE CONTINUE', 'Traverse de toiture continue', 'Traverse', 'TT(C)', 1, 'VL', 'Nettoyage', 20, 0, 0.2, 2, 10, 'AA');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE TRAVERSE DE TOITURE', 'MODULE TRAVERSE DE TOITURE CONTINUE', 'Traverse de toiture continue', 'Traverse', 'TT(C)', 1, 'VG', 'Nettoyage', 20, 0, 0.2, 2, 10, 'AA');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE TRAVERSE DE TOITURE', 'MODULE TRAVERSE DE TOITURE MONOPHASEE', 'Traverse de toiture monophasée', 'Traverse', 'TT(M)', 1, 'VL', 'Nettoyage', 20, 0, 0.2, 2, 10, 'AA');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE TRAVERSE DE TOITURE', 'MODULE TRAVERSE DE TOITURE MONOPHASEE', 'Traverse de toiture monophasée', 'Traverse', 'TT(M)', 1, 'VG', 'Nettoyage', 20, 0, 0.2, 2, 10, 'AA');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE PANTOGRAPHE', 'MODULE PANTOGRAPHE MONOPHASE 25 KV', 'Module tête de captage monophasée', 'Bande de frottement', 'BFr', 2, 'VL', 'Remplacement', 250, 5e-006, 0.2, 1, 20, 'QS');
    INSERT INTO `arbo_bb37000` VALUES ('BB37000', 'ALIMENTATION EN ENERGIE', 'MODULE ALIMENTATION ELECTRIQUE', 'MODULE PANTOGRAPHE', 'MODULE PANTOGRAPHE MONOPHASE 25 KV', 'Commande pneumatique', 'Electrovalve VE-PTM', 'VE-PTM', 1, 'VL', 'Inspection', 250, 4e-005, 0.02, 1, 1, 'EDF');

    donc comme tu peux voir en gras, il y a des memes modules mais pas au meme endroit.

    Et voila le code qui appelle à la mise en place de cette arbo:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    WITH Datamodule1.MyQArbo DO
      BEGIN
        SQL.Clear;
        SQL.Add('SELECT ID_Engin_FK3,Module_N1,Module_N2,Module_N3,Module_N4,Module_N5,Module_N6');
        SQL.Add('FROM Arbo');
        SQL.Add('GROUP BY ID_Engin_FK3,Module_N1,Module_N2,Module_N3,Module_N4,Module_N5,Module_N6');
        SQL.Add('ORDER BY ID_Engin_FK3,Module_N1,Module_N2,Module_N3,Module_N4,Module_N5,Module_N6');
        Open;
        First;
        WHILE NOT Datamodule1.MyQArbo.Eof DO
        BEGIN
          IF L_Acc_Value[0]<> Datamodule1.MyQArbo.Fields[0].Value THEN
             L_Acc_Treenode[0]:=TreeView1.Items.Add(nil,vartostr(Datamodule1.MyQArbo.Fields[0].Value));
             FOR i:=1 TO Datamodule1.MyQArbo.FieldCount -1 DO
             BEGIN
               IF (L_Acc_value[i]<> Datamodule1.MyQArbo.Fields[i].Value) or (Datamodule1.MyQArbo.Fields[i].Value = NULL) then
                   L_Acc_Treenode[i]:=TreeView1.Items.AddChild(L_Acc_Treenode[i-1],Vartostr(Datamodule1.MyQArbo.Fields[i].Value));
                   L_Acc_value[i]:=Datamodule1.MyQArbo.Fields[i].Value;
             END;
             L_Acc_value[0]:=Datamodule1.MyQArbo.Fields[0].Value;
             Next;
        END;
      END;
    Mais le pb, c'est que lorsque ma table était en paradox le tri était bon, mais là sous mysql il ne l'est plus alors que c'est le même code....

    bizarre!

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/09/2010, 20h26
  2. [WD15] Tri sur une rubrique table de type combo
    Par GCASPIC10 dans le forum WinDev
    Réponses: 1
    Dernier message: 11/09/2010, 18h19
  3. tri sur un champ table
    Par vallgui dans le forum WinDev
    Réponses: 6
    Dernier message: 20/09/2007, 16h08
  4. trigger createur de table sous mysql
    Par lours85 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 20/02/2006, 11h53
  5. Problème de création de table sous MySql
    Par ducamba dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2003, 09h59

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