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 :

[Delphi5 - Paradox7] Mise à jour automatique lorsqu'il y a un lien entre 2 tables


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 39
    Points
    39
    Par défaut [Delphi5 - Paradox7] Mise à jour automatique lorsqu'il y a un lien entre 2 tables
    Bonjour,
    Pour modéliser mon problème je vais donner un exemple classique
    J'ai 3 tables de types Paradox dont les clés sont entre parenthèses:
    Etudiant (Matricule)
    Module (Code_Module) et
    Note (Matricule,Code_Module)

    je modifie le Matricule dans la table étudiant, et j'aimerai que le champ correspondant dans la table note soit mis à jour automatiquement.

    La question est: est ce qu'il existe un moyen pour relier 2 tables dans le Module Base de Données dans lequel on crée les tables? ou vais-je parcourir les tables concernées et faire la modification grâce à des procedures que je dois écrire?

    dans le cas de suppression c'est simple, je fais une procedure qui supprime d'abord les enregistrements dans la table note en la parcourant avec le Matricule, de l'étudiant que je vais supprimer. puis je le supprime de la table étudiant.
    Mais dans le cas de modification, comment mettre à jour le matricule dans la table note?
    du français me suffit, je ne demande pas un bout de code
    merci

  2. #2
    Membre actif Avatar de liazidf
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2002
    Messages : 281
    Points : 261
    Points
    261
    Par défaut tables liées
    Bonsoir,
    A ce que j'ai compris, vous voulez repercuter les modifications sur tables liées, uniquement les champs index, je pense que vous devriez utiliser les propriétés Mastersource et Masterfield,
    bon courage

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 39
    Points
    39
    Par défaut
    Non j'ai déjà essayé avec le mastersource et masterfield ça ne marche pas.
    dans l'affichage c'est utile lorsqu'on a une table esclave, la grille par exemple affiche seulement les éléments qui concernent l'enregistrement (de la table maitre) pointé

  4. #4
    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
    Salut

    Citation Envoyé par Yearning Voir le message
    Bonjour,
    je modifie le Matricule dans la table étudiant, et j'aimerai que le champ correspondant dans la table note soit mis à jour automatiquement.

    La question est: est ce qu'il existe un moyen pour relier 2 tables dans le Module Base de Données dans lequel on crée les tables?
    Ces notions de mise à jour et suppression en cascade peuvent être gérées automatiquement par Paradox. Ce sont les règles d'intégrités référentielles.
    Celles-ci peuvent être définis avec le Module de Bases de données.

    Consulte l'aide du module de base de données à ce sujet, c'est assez bien décrit.

    @+ Claudius

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 39
    Points
    39
    Par défaut
    Waaaa merci Cl@udius, je viens de lire le paragraphe correspendant dans le Module Base de Données, c'est exactement ce que je recherche, et dire qu'il y a des personnes qui font des algorithmes pour la suppression sachant que ça existe et c'est automatique.

    au fait, lorsque je restructure ma table et je choisis le champ enfant, il n'y a pas la liste des Tables à droite, et je ne peux donc pas définir la relation avec la table parent... faut-il que les tables soient donc Workdir? car mon alias est ailleurs.
    merci

  6. #6
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 39
    Points
    39
    Par défaut
    aaahhh ça m'enerve!
    même si j'ai changé l'alias après avoir mis les tables dans workdir juste pour un test, après que j'ai défini le lien entre les 2 tables et tout, en enregistrant il me dit "nom du fichier incorrect : Av_Var3.db"
    pourquoi?
    faut toujours qu'il y ait quelquechose qui cloche

  7. #7
    Membre actif Avatar de liazidf
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2002
    Messages : 281
    Points : 261
    Points
    261
    Par défaut tables de références
    Bonsoir,
    tout d'abord, il faut savoir qu'il faut utiliser un seul alias, snon votre applic ne verra jamais les tables, car c'est un autre alias qui est déclaré, pour ce qui est du volet d'affichage des tables dans le module base de données, là c'est un champ qui fait réference à une table, qui se trouve dans le même repertoire ou Alias, j'espère être clair.

  8. #8
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par liazidf Voir le message
    Bonsoir,
    tout d'abord, il faut savoir qu'il faut utiliser un seul alias, snon votre applic ne verra jamais les tables
    ça c'est clair et évident!
    Ce n'est pas un problème d'alias, workdir n'est pas déclaré autant qu'alias.
    j'ai fini par déplacer toutes mes tables dans le répertoire workdir et j'ai donc modifié le chemin de mon alias (nommé Actionneur)

    pour l'integrité référencielle, ça a marché pour qulques tables, de relation (1-n <==> 1-1)
    mais pas pour toutes les autres (j'ai plus de 50 tables!)
    Je ne sais pas pourquoi on me dit Nom fichier incorrect, sachant que par exemple PFE_Sout et Travail_entame ont été acceptés, mais Model_simule n'a pas été accepté, on dirait presque qu'il les choisisse au hasard -_-'''''
    quelqu'un pourrait-il m'expliquer? et j'espère me dire quoi faire

  9. #9
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 39
    Points
    39
    Par défaut
    Eeeeeeenfin!
    Effectivement, il fallait chercher dans cette voie (Nom fichier incorrect)
    Le nom de la table parent est parfois trop long pour être accepté
    je m'en suis rendue compte après avoir fait toutes sortes de modifications afin de situer à peu près l'erreur...
    que ça serve aux autres à l'avenir, choisir des noms plus ou moins courts pour la table parent
    ça ne me coûte pas trop de temps de les changer dans mon application, par contre relier toutes les tables entre elles... y a du boulot, avec plus de 50 tables je n'ai toujours pas fini...
    bon j'y retourne
    bon courage à tous

  10. #10
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Ces notions de mise à jour et suppression en cascade peuvent être gérées automatiquement par Paradox
    La mise à jour est effectivement automatique et c'est génial!
    par contre la suppression n'est pas possible lorsque la clé de la table parent existe dans une table enfant...
    dans l'Aide on disait que la suppression est possible lorsqu'on coche sur Cascade et non pas interdite, mais finalement ce n'est pas le cas (j'ai eu droit à un gros message violent lol)
    il faut donc écrire un petit programme qui parcourt les tables enfants afin de supprimer l'enregistrement d'abord dans la table enfant puis dans la table parent (c'est lourd -_-'')

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

Discussions similaires

  1. Mise à jour de plugins pour application Java et liens entre eux
    Par identifiant_bidon dans le forum Plateformes réactives et architectures modulaires
    Réponses: 1
    Dernier message: 14/06/2010, 18h05
  2. [VB6] Code pour Mise à jour automatique
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 45
    Dernier message: 10/02/2006, 18h05
  3. mise à jour automatique de champs entre 2 tables
    Par romdyane dans le forum Access
    Réponses: 5
    Dernier message: 11/10/2005, 18h51
  4. système de mise à jour automatique
    Par eponette dans le forum Web & réseau
    Réponses: 2
    Dernier message: 24/08/2005, 20h17
  5. Mise à jour automatique d'un JTextAera
    Par Vlakyron dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 25/09/2004, 20h11

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