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 :

TDBListBox + Requetes en fonction de l'items.


Sujet :

Bases de données Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut TDBListBox + Requetes en fonction de l'items.
    Bonjour,

    Je vous explique mon probleme :

    J'ai une table BG_VOITURE dans ma BDD Oracle.
    Elle est remplit de voitures avec diverses informations, immatriculation...

    Je souhaite remplir un TdbListbox affichant toutes les voitures :

    Voiture 1
    Voiture 2
    ...

    et lorsque je clique sur une des voitures, j'affiche son immatriculation...

    J'arrive a remplir le TdbListbox par une boucle + une requete SQL.

    select immatriculation,numero
    from bg_voiture;

    Je me dis facil alors, suffit de faire une requete parametrée du style

    select marque,type
    from bg_voiture
    where immatriculation= :imma;

    Mais ca ne marche pas :s ou ca marche pour la 1ere selection mais pour les suivante non... ou meme les items du listbox ne sont pas selectionnable...

    De meme dans Tdblistbox, malgré la lecture de la DOC, je comprends pas le champs DATAFIELD...

    MERCI DE VOTRE AIDE

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Pourrais tu nous fournir ton code ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Les sources :

    http://gregb.no-ip.com/public/delphi/bdd.zip

    Merci de ton aide

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Bon pour la listbox, c'est normal tu lui indique aucun datafield.

    De plus ton programme ne fonctionnera jamais.
    Pour ce que tu veux faire il te faut obligatoirement une dblookuplistbox ca fonctionnera deja mieux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     
    // Marche nickel...
     
      req_liste.Active := true;
        while not req_liste.Eof do
          begin
            liste.Items.Add('Voiture - '+req_listeVOITURE_NUM.Text);
            req_liste.Next;
          end;
      req_liste.Close;
    end;
    Ok tu remplis bien ta listbox, donc tu doit avoir
    Voiture - 0132130132
    Voiture - 013543503
    Etc ...

    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
     
    procedure TForm1.listeClick(Sender: TObject);
    begin
    req_infos.Params[0].Value := req_listeVOITURE_IMMA.Value;
    req_infos.Active := true;
     
    //edit_v_type.Text := req_infosVOITURE_TYPE.text;
     
    // Cela ne marche pas, car j'ai une erreur lorsque je souhaite
    // ajouter des champs au TQUERY req_infos
    // L'erreur : TAB_VOITURE : Le champs matricule est introuvable.
    // pourtant TAB_VOITURE contient tous les champs de la table voiture :
    // VOITURE_IMMA, VOITURE_TYPE, VOITURE_MARQUE, VOITURE_NUM, VOITURE_ACHAT
     
    req_infos.Close;
     
    end;
    La tu cliques sur ta listbox, mais tu recherches vis a vis de la requete qui n'est liée à rien.
    Et si ca marche, tu auras toujours la valeur de resultat où pointe req_liste.

    De plus ta requete ne fonctionnera qu'une fois, vu que tu modifies le parametre une fois, il faut recharger la requete donc je te conseil de faire la requete en dynamique.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Tu pourrais me faire un exemple stp sur les requetes dynamiques ?

    Comment o ntulise un TdbLookUP ?

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Je vais prendre ton code en exemple pour une requete dynamique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    With req_infos do
    begin
      Close; //on ferme la requete pour genere la nouvelle
      SQL.clear; // on efface l'ancienne requete
      SQL.Add('select VOITURE_TYPE'); //
      SQL..Add('from BG_VOITURE'); // on reécrit la requete
      SQL.Add('where VOITURE_IMMA=:matricule'); //
      ParamCheck := True; // (conseillé)
      Params.ParamByName('matricule').value := [La valeur de recherche]
      Open; // on execute la requete.
    end;
    Concernant le dblookuplistbox, ca fonctionne comme pour le dblookupcombobox et tu pourras voir ca ici

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    OK merci, je vais voir ce que ca donne...

    Par contre, je comprends pas pkoi on utilise un dblookuplistbox car, je travaille sur une seule table....

    Je veux afficher toutes les voitures et quand on clique sur l'une, il s'affiche ses caracteristiques... tu vois ?

    MON MSN : rosewood_billy@hotmail.com ca serait cool

Discussions similaires

  1. VBA requete avec fonction sous access
    Par vanima dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/06/2006, 15h18
  2. [C#][Débutant] Comment appeler la meme fonction depuis plusieurs items d un menu
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 7
    Dernier message: 27/04/2006, 19h39
  3. Warning: mysql_fetch_row() sur requete qui fonctione
    Par dark_vidor dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/03/2006, 18h05
  4. Réponses: 4
    Dernier message: 07/01/2006, 22h56
  5. requete en fonction de l'heure
    Par matberry dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/06/2003, 22h53

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