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 :

Comment récupérer l'id d'un enregistrement d'une table ?


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Comment récupérer l'id d'un enregistrement d'une table ?
    bonjour,

    voici ma problématique :

    j'ai une table "jouets" avec les champs suivants :
    j_id : autoinc
    j_libel :string(100)

    dont 2 enreg :
    1 - CAMION BENNE
    2 - POUPEE BARBIE

    dans une listbox, j'ajoute dynamiquement à lacréation de la fiche les libellés des 2 enreg. cependant en sélectionnant la valeur "POUPEE BARBIE" je souhaite en même temps récupérer la valeur de "j_id", soit 2.
    ce dernier champs, me servira à alimenter le champs 'JC_J_id" l'enregistrement de la table "jouets_commandes".

    Vous aurez compris que je ne souhaite pas utiliser les composants de base de données ...

    Quelqu'un a til déjà été confronté à ce pb ? et a til la soluce ?
    merci d'avance de vos lumières !
    dimitri

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 897
    Points : 6 024
    Points
    6 024
    Par défaut
    il faut construire en parallèle une liste des id...
    Le + simple serait peut-être d'utiliser un TStringList (au prix d'une conversion IntToStr de l'id lors du chargement).
    Cette TStringList (sorted à false) est ensuite utilisable comme une Listbox non visuelle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    j_id:=StrToInt(MaStringList.Items[MaListBox.Itemindex]);
    Une solution + couteuse est de récupérer l'id en base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select j_id from jouet where j_libel = :lib_jouet
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Salut,

    si ton "j_id" est un entier,
    tu peux associer un objet lors de l'ajout à ta liste et le récupérer lors de la séelction de l'utilisateur:

    Ajout dans la list box:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.AddItem( j_libel, TObject( j_Id) );
    et pour la récupération de l'ID:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IIndex := ListBox1.ItemIndex;
    j_Libel_Temp := ListBox.Items.Strings[ IIndex ];
    j_id_Temp := Integer( ListBox1.Items.Objects[ IIndex ] );
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  4. #4
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par TicTacToe Voir le message
    Ajout dans la list box:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.AddItem( j_libel, TObject( j_Id) );
    +1
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

Discussions similaires

  1. [AC-97] Comment récupérer la position d'un champ d'une table de bd?
    Par BornToBe dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/08/2012, 12h56
  2. comment faire pour supprimer tous les enregistrements d'une table
    Par sehing7 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 14/04/2009, 15h13
  3. Récupérer l'index d'un enregistrement dans une table
    Par lolita4882 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/04/2008, 22h33
  4. Récupérer chaque ligne de type enregistrement dans une table
    Par atporfi dans le forum Administration
    Réponses: 2
    Dernier message: 02/04/2008, 20h12
  5. [MySQL] Comment récupérer le nombre d'élément présent dans une table
    Par TrX314 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/04/2007, 22h20

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