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

Delphi Discussion :

Selection de plusieur champs avec XDBGRID


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 35
    Points : 29
    Points
    29
    Par défaut Selection de plusieur champs avec XDBGRID
    Bonjour tout le monde;
    je travail avec D7, sgbd Paradox, (XDBGRID component v6)
    Voilà avec cette procédure je devrai normalement selectionner plusieur champs a la fois de Table1 pour les inserer à Table2
    mon probleme c'est que si je selectionne autant de champs à la fois et j'insere ca prend que le dernier enregistrement mais plutot
    si je fais un par un tout fonctionne donc que manque t'il dans cette procédure

    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
    procedure XDBGRIDFORM1.Button1Click(Sender: TObject);
    var i:integer;
     
    begin
     table1.open;
     table2.open;
     
                     with Table1 do
                     begin
                    table2.insert;
     
                    for i:=0 to fieldcount-1 do
                    if table2.findfield(fields[i].fieldname)<>nil then
                    table2.fieldvalues[fields[i].fieldname]:=fieldvalues[fields[i].fieldname];
     
                    table2.fieldbyname('Nummdt').AsString:=e1.text;
                    table2.fieldbyname('Annee').AsString:=cb1.text;
                    table2.fieldbyname('Mois').AsString:=cb2.text;
                    table2.fieldbyname('Motifmdt').AsString:=e2.text;
                    table2.post;
                    end;
                      end;
                        end.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    il manque un Next sur table1 juste après le Table2.post
    et peut être aussi un While not EOF do

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    with Table1 do
    begin
      Open;
      while not EOF do
       begin
         Table2.insert;
         ...
         Table2.Post;
         Next;
       end;
    end;
    mais il y a quand même des méthodes plus efficaces que ce code !
    ce SQL devrait fonctionner avec Paradox je pense
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO TABLE2(<Champs>) SELECT <Champs> From Table1
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 35
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    il manque un Next sur table1 juste après le Table2.post
    et peut être aussi un While not EOF do

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    with Table1 do
    begin
      Open;
      while not EOF do
       begin
         Table2.insert;
         ...
         Table2.Post;
         Next;
       end;
    end;
    mais il y a quand même des méthodes plus efficaces que ce code !
    ce SQL devrait fonctionner avec Paradox je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO TABLE2(<Champs>) SELECT <Champs> From Table1
    ça donne toujour le meme résultat

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    au lieu de me citer en intégralité et répondre
    Citation Envoyé par bastion Voir le message
    ça donne toujours le même résultat
    vous auriez mieux fait de poster votre code !
    Avez vous songé au SQL proposé : une seule query paramétrée peut faire toute la partie copie d'enregistrement de votre code pour peu que cette dernière soit bien construite
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/08/2011, 15h24
  2. Réponses: 8
    Dernier message: 16/02/2007, 12h53
  3. Selection de plusieurs colonnes avec une zone de liste
    Par vinzeffect dans le forum Access
    Réponses: 3
    Dernier message: 20/01/2007, 22h51
  4. selection de plusieurs dates avec un calandrier
    Par matdesign dans le forum Access
    Réponses: 5
    Dernier message: 01/10/2005, 08h21
  5. SELECT sur un champ avec accent
    Par Bibicmoi dans le forum Requêtes
    Réponses: 6
    Dernier message: 21/08/2005, 12h20

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