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 :

[D7],[Access], update d'une table à partir d'une autre


Sujet :

Bases de données Delphi

  1. #1
    iam
    iam est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 197
    Points : 72
    Points
    72
    Par défaut [D7],[Access], update d'une table à partir d'une autre
    salut
    j'ai 2 tables mouvement(mvtnum, mvtdat) detail_mouvement(dmvnum, mvtnum, dmvdat) le champ dmvdat je l'ajoute par script car je veux ordonner la table detail_mouvement par date donc je rentre les valeurs de la table mvtdat de la table mouvement pour que je puisse ordonner detail_mouvement par date (important)
    j'ai fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update detail_mouvement d set dmvdat=(select mvtdat from mouvement m where m.mvtnum=d.mvtnum);
    c'est faux mais je veux que vous m'aidiez dans la syntaxe de cette requete
    merci

  2. #2
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Bonjour, j'ai trouver cet exemple sur internet:

    Mise à jour d'une table à partir des informations d'une autre table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UPDATE TABLE1
    SET ( champ3, champ4 ) =
    (
            SELECT val32, val13 FROM TABLE2 
              WHERE TABLE1.CHAMP1 = TABLE2.CHAMP2
    )
    WHERE ( CHAMP1 ) IN ( SELECT CHAMP2 FROM TABLE2)
    ;
    Il te manque une condition Where pour que ce soit juste, puisqu'ici tu n'as fais qu'une jointure (je suppose que ton champs dmvdat à la même valeur pour tous les enregistrements?)

    Je l'aurais fais par une boucle en parcourant toute ma table mouvement, mais il y a surement mieux..

    @+.
    For crying out loud !

  3. #3
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Bonjour,

    Je ne vois pas en quoi ta requête de mise à jour est fausse.
    Tu l'as testée et elle fonctionne, en tous cas elle devrait.

    Cependant c'est probablement bien inutile.
    Si tu veux "ordonner" ta table détail par la date de mouvemlent de ta table maître alors utilise une jointure et un order by.
    La redondance de donnée est à éviter, elle est le + souvent source d'ennui.
    Le seul intérêt que j'y verrai dans ton cas, serait de simplifier ton code delphi de mise à jour en utilisant soit un TTable ou un Tquery en RequestLive, mais tu peux l'éviter en utilisant une jointure telle que ci dessous et alors pour tes mlises à jour il faudra utiliser une gestion via UpdateObject.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      select d.mvtnum
        from detail_mouvement d
        join mouvement m
    order by m.mvtdat, d.mvtnum desc
    a+
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  4. #4
    iam
    iam est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 197
    Points : 72
    Points
    72
    Par défaut
    merci yurk pour tes eclaircissements, seulement j'ai pas compris des trucs de ce que t'as ecris : c'est quoi un Tquery en RequestLive? et comment utiliser une gestion via UpdateObject? moi j'ai fais une requete de mise à jour normale avec la jointure que t'as précisé, est ce qu'il y a d'autres choses à faire? en tout cas je te remercie et sans oublier padawandelphi bien sur
    ciao

  5. #5
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Bonjour,

    Eh bien pour répondre à ta ou à tes questions il faut sans doute d'abord cerner ton besoin et tes outils.
    - Alors quels version de delphi utilises tu ?
    - Quels sont les objet utilisés ?
    - Quelle est ta base de donnée ? (nombre de table et volume)

    En effet, Delphi présente tous un panel de possibilités qui sont plus ou moins bien adaptées en fonction de tes besoins.

    Par exemple pour l'accès aux données tu disposes d'un TTAble et d'un TQuery (regarde dans l'onglet AccesBD). Mais en fonction de ta base de donnée et de ton mode de connexion à celle-ci tu peux aussi utiliser leur cousins que sont soit la suite ADO avec le TADOTable et le TADOQuery ou la suite interbase avec le TIBTable ou le TIBQuery.

    blablabla...blablabla

    Je te passe les détails dont on se f..
    Il faut donc préciser ton besoin pour obtenir des réponses plus fines.

    a+
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/06/2012, 12h12
  2. Réponses: 4
    Dernier message: 20/03/2007, 09h54
  3. SQL Update d'une table à partir d'une autre table
    Par Jean-Marc68 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 16/03/2007, 13h22
  4. Update d'une table à partir d'une autre
    Par nicoaix dans le forum Access
    Réponses: 5
    Dernier message: 09/03/2006, 11h36
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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