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 :

Lire et modifier une table avec plusieurs TQuery


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2006
    Messages : 121
    Points : 127
    Points
    127
    Par défaut Lire et modifier une table avec plusieurs TQuery
    Bonjour!

    J'ai regardé sur internet et sur le site, et je luuutee!
    C'est un pb d'homonymes dans une table.

    J'ai une table T_Personne dans une base de données SQLServer 7.
    Mon programme fait une requete dans la table grace à un TQuery (Query1) pour afficher ce qui nous intéresse dans un composant DBGrid.
    L'utilisateur peut sélectionner une ou plusieurs personne(s) de la table dans la DBGrid.
    Ensuite il clique sur un bouton, et le but du jeu est de rapprocher les données des personnes sélectionnées (pls enregistrement) sur une seule d'entre elles (un seul enregistrement.)

    Il faudrait (de préférence) que le query1 reste ouvert.
    Pour l'instant je récupère les infos primordiales sur les personnes (genre ID) dans un petit tableau.

    Comment faire ensuite pour lire et modifier en même temps des enregistrements différents dans une même table??
    Est-ce que c'est possible?


    J'ai pensé à ouvrir 2 autres TQuery avec dans l'un la vraie personne (dont l'enregistrement sera modifié) et dans l'autre la liste des homonymes (dont les enregistrements seront par la suite supprimés).

    Mais je n'arrive pas à trouver comment les ouvrir correctement:
    faut-il utiliser les filtres
    faut-il utiliser prepare-unprepare
    faut-il utiliser edit?
    Quelles sont les bonnes options?

    Est-ce que quelqu'un saurait m'indiquer quelles démarches on pourrait suivre?

    Merci d'avance à developpez.com.

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,

    Je me permets de tenter une petite réponse, même si je n'ai pas Le Delphi, puisque je suis 'un cousin' venant du CBuilder...

    As tu éventuellement envisagé de charger préalablement la liste de homonymes dans une TStringList ?
    Ou peut être te faut il tout simplement utiliser un 'Bookmark' sur l'enregistrement de la personne selectionnée, afin d'effectuer les traitements voulus ailleurs dans la table et de revenir facilement sur l'enregistrement initial ?

    En espérant t'aider,

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #3
    Membre habitué
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2006
    Messages : 121
    Points : 127
    Points
    127
    Par défaut
    Je récupère en effet les données essentielles sur les homonymes dans un tableau d'enregistrements.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    type
     TPersonne = record
          ID : integer ;
          Nom : string ;
          Prenom : string ;
      end ;
     
    var
     Tableau : array of TPersonne
    Mais je ne récupère pas l'ensemble des données parce que la table contient près de 40 champs...

    Je pourrais rajouter un pointeur bookmark dans mon tableau pour pointer vers la personne voulue.
    Mais comme je dois comparer chaque champs, ca veut dire qu'il faut que je change d'enregistrement toutes les 2 secondes pour faire mes tests.

    40 champs * 3 déplacements... ca risque d'être franchement long, non?
    La table contient pres de 60000 personnes.

    est-ce que les bookmark ciblent directement l'enregistrement, ou une petite recherche s'effectue quand même?

    Peut-être qu'il serait plus simple en effet de stocker l'ensemble des données de la vraie personne dans le programme, et de faire des appels à la table uniquement pour la comparaison avec les homonymes...

    merci bcp pour ton aide en tout cas.

  4. #4
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,

    Et si non, au moment ou l'utilisateur selectionne des personnes dans le DBGrid, charger les données représentant ces personnes dans des struct - eux mêmes 'stockés' dans une TList - puis au fur et a mesure que l'on travaille sur telle ou telle personne, effectuer alors des recherches et modifications sur la table ?

    En espérant aider,
    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  5. #5
    Membre habitué
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2006
    Messages : 121
    Points : 127
    Points
    127
    Par défaut
    Oui, c'est tout à fait ce que je voudrai faire, seulement j'ai toujours besoin d'avoir accès aux données de 2 personnes en même temps pour pouvoir les comparer avant d'ecraser l'homonyme.

    Cela sous-entend alors qu'il faut que le programme se balade sans arret entre les 2 personnes si on ne peut pas être placé sur 2 enregistrements d'une même table en même temps?

Discussions similaires

  1. Faire une table avec plusieurs
    Par FCL31 dans le forum Modélisation
    Réponses: 1
    Dernier message: 22/01/2008, 13h44
  2. alimenter une tables avec plusieurs formulaires
    Par vibalistic dans le forum VBA Access
    Réponses: 8
    Dernier message: 21/12/2007, 10h20
  3. Update d une table avec plusieurs valeurs
    Par Nadaa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/05/2006, 08h58
  4. Creation d'une table avec plusieurs clés
    Par mic79 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/06/2005, 11h17
  5. [postgresql]creer une table avec plusieurs clés primaire??
    Par perlgirl dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2004, 17h24

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