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 :

Boucle test et remplissage d'une table


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut Boucle test et remplissage d'une table
    bonjour

    jai deux table T1 et T2 ; T1 elle a 9 colonnes X1.......X9, T2 9 colonnes aussi J1....................J9 jaimerai remplir les colonnes de T2 seulement si la colonne
    de T1 et remli ( elle nest pas vide ) je copie la colonne rempli dans lune des colonnes vide de T2 voila ce que jai fait :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    procedure TForm3.Button8Click(Sender: TObject);
    begin
    Table1.First;
    while not Table1.Eof do
     begin
        Table2.Insert;
        If Table1.FieldByName('x1').AsInteger <> 0 then
         begin
         Table2.FieldByName('Lignes').AsString := Table1.FieldValues['Lignes'];
         Table2.FieldByName('J1').AsInteger := Table1.FieldValues['X1'];
         end
         else
         if Table1.FieldByName('X2').AsInteger <> 0 Then
         begin
         Table2.FieldByName('Lignes').AsString := Table1.FieldValues['Lignes'];
         Table2.FieldByName('J2').AsInteger := Table1.FieldValues['X2'];
         end
         else
         if Table1.FieldByName('X3').AsInteger <> 0 Then
         begin
         Table2.FieldByName('Lignes').AsString := Table1.FieldValues['Lignes'];
         Table2.FieldByName('J3').AsInteger := Table1.FieldValues['X3'];
         end
         else
         if Table1.FieldByName('X4').AsInteger <> 0 Then
         begin
         Table2.FieldByName('Lignes').AsString := Table1.FieldValues['Lignes'];
         Table2.FieldByName('J4').AsInteger := Table1.FieldValues['X4'];
         end
         else
         if Table1.FieldByName('X5').AsInteger <> 0 Then
         begin
         Table2.FieldByName('Lignes').AsString := Table1.FieldValues['Lignes'];
         Table2.FieldByName('J5').AsInteger := Table1.FieldValues['X5'];
         end
         else
         if Table1.FieldByName('X6').AsInteger <> 0 Then
         begin
         Table2.FieldByName('Lignes').AsString := Table1.FieldValues['Lignes'];
         Table2.FieldByName('J6').AsInteger := Table1.FieldValues['X6'];
         end
         else
         if Table1.FieldByName('X7').AsInteger <> 0 Then
         begin
         Table2.FieldByName('Lignes').AsString := Table1.FieldValues['Lignes'];
         Table2.FieldByName('J7').AsInteger := Table1.FieldValues['X7'];
         end
         else
         if Table1.FieldByName('X8').AsInteger <> 0 Then
         begin
         Table2.FieldByName('Lignes').AsString := Table1.FieldValues['Lignes'];
         Table2.FieldByName('J8').AsInteger := Table1.FieldValues['X8'];
         end;
     table2.post;
    end;
    ici le program verifi juste la 1er colonne et transfert les enregistrement sil trouve la colonne rempli (non vive) vers la 1er colonne de la table2 mais il ne s'arrete pas en plus il verifi juste la 1 er colonne de la table1 les autres colonnes il ne les verifi pas


    est-ce que quelqu'un peu m'orienter ou m'aider svp ?


    merci

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par delphino7 Voir le message
    ici le program verifi juste la 1er colonne et transfert les enregistrement sil trouve la colonne rempli (non vive) vers la 1er colonne de la table2 mais il ne s'arrete pas en plus il verifi juste la 1 er colonne de la table1 les autres colonnes il ne les verifi pas
    C'est normal puisque tu utilises des if..then..else. Si le 1° if est à true il n'exécute pas la partie else.

    Je verrais plutot ceci avec une boucle:
    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
    procedure TForm3.Button8Click(Sender: TObject);
    var
      I: Integer;
      FldSrc, FldDest: string;
    begin
      Table1.First;
      while not Table1.Eof do
      begin
        Table2.Insert;
        Table2.FieldByName('Lignes').AsString := Table1.FieldValues['Lignes'];
        for I := 1 to 9 do
        begin
          FldSrc := 'X' + IntToStr(I);
          FldDest := 'J' + IntToStr(I);
          if not Table1.FieldByName(FldSrc).IsNull then
            Table2.FieldByName(FldDest).AsInteger := Table1.FieldByName(FldSrc).AsInteger;
        end;
        Table2.Post;
        Table1.Next;
      end;
    end;
    @+

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    merci je vais lessayer et je te rend la reponse tout de suite


    merci

  4. #4
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    tu sais au debut il a fait il a tester tout les colonnes et rempli les autres

    mais quand jai fait un deuxieme test apres avoir supprimer tout les enregistrement ,jai clicker pour fair le test il a rempli que la premiere colonnes de la T2 en plus il ne sais pas arreter !!!!


    pourquoi ?

    merci

  5. #5
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    non attend cl@udius tu sais quoi jai compris lerreur moi je regarder la table physiquement je veu dir dans le database desktop pour voir le resulta alors la table2 ma eu elle me mentrer la trace quelle a garder de mon premeir test

    donc quesque jai fait jai mit un dbgrid et crois moi il maffiche le bon resulta

    merci


    mais tu sais cl@udius je ne sais toujours pas Vider une table avec ton prgram il maffiche toujours 'table is busy 'tu sais jai vraiment besoin de ce program pour vider completement mes tables pour que la table ne garde aucune trace
    sil te plait


    merci

  6. #6
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par delphino7 Voir le message
    mais tu sais cl@udius je ne sais toujours pas Vider une table avec ton prgram il maffiche toujours 'table is busy 'tu sais jai vraiment besoin de ce program pour vider completement mes tables pour que la table ne garde aucune trace
    sil te plait
    Ce n'est pas là qu'il fallait continuer cette discussion, mais bon:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       DELETE FROM TA_TABLE;

    Tout simplement.

  7. #7
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    ok je vais clicker sur resolu et je vais ouvrir une autre discuttioon pour vider une table ok merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/09/2011, 11h12
  2. Remplissage D'une Table
    Par Maria1505 dans le forum Oracle
    Réponses: 2
    Dernier message: 08/11/2006, 12h53
  3. Remplissage D'une Table
    Par Maria1505 dans le forum Oracle
    Réponses: 1
    Dernier message: 08/11/2006, 11h30
  4. test d'existence d'une table dans une bd mysql
    Par kafana dans le forum JDBC
    Réponses: 5
    Dernier message: 25/03/2006, 21h19
  5. [PL/SQL] Boucle de remplissage d'une table.
    Par Maglight dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/12/2005, 16h35

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