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 peut-on récuperer la valeur de la cellule sélectionnée pour une requête SQL ?


Sujet :

Bases de données Delphi

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Comment peut-on récuperer la valeur de la cellule sélectionnée pour une requête SQL ?
    Bonjour,
    Comment peut-on récuperer lorsqu'on clique sur la cellule la valeur d'un DBGrid et l'utiliser dans un SQL?
    je m'explique:
    Mon DBGrid affiche C=la clé unique, N=Nom.
    J'ai vu un truc dans la FAQ que pour récupérer cette valeur, il faut faire:
    Edit1.Text := DBGrid1.Columns[0].Field.AsString;

    Je veux récupérer la valeur de C et l'utiliser dans un Query Q1 tel que:
    Q1.SQL.Add('Select C from table');
    Delphi m'indique que C n'a pas de valeur par défaut.
    quelqu'un peut-il m'aider?
    Merci

  2. #2
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    J'ai pas tout compris.
    C'est ça que tu veux faire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Q1.SQL.Add('Select '+DBGrid1.Columns[0].Field.AsString+' from table');

  3. #3
    Débutant

    Inscrit en
    Décembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 166
    Points : 120
    Points
    120
    Par défaut
    Si ce que tu veux c'est recuperer la valeur du champs "C" de ta premiere requete pour l'utiliser dans une autre ??

    Tu doit pouvoir faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBGrid.DataSource.DataSet.FieldByName('C').AsString;

  4. #4
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    D'abord, j'ai l'impression que tu n'as pas utilisé ta valeur au bon endroit dans ton sql.
    Le format d'un SELECT c'est :
    SELECT <Nom des champ que tu souhaite récupérer> FROM <Nom de la table> WHERE <Condition>
    ou, si tu veux tous les champs de ta table :
    SELECT * FROM <Nom de la table> WHERE <Condition>
    C'est sans doute après le WHERE que tu dois avoir besoin de C :
    SELECT champ1,champ2,champ3 FROM TaTable WHERE (champ1=Valeur_de_C)
    Un exemple,
    Dans l'évènement OnCellClick de ton DBGrid, tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.DBGrid1CellClick(Column: TColumn);
    var C:string;
    begin
      C:=DBGrid1.Columns[0].Field.AsString; 
     
      if Q1.Active then Q1.Close; // sinon on ne peu pas faire ce qui suit...
      Q1.SQL.Text:='Select champ1,champ2,champ3 FROM TaTable WHERE (champ1='+C+')';
      Q1.Open;
    end;
    Pardon si je me suis trompé...

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

Discussions similaires

  1. [PHP 5.4] Insérer des valeurs saisies par l'utilisateur dans une requête SQL
    Par B.Berthod dans le forum Langage
    Réponses: 1
    Dernier message: 22/01/2015, 09h28
  2. Réponses: 2
    Dernier message: 22/10/2013, 16h57
  3. Réponses: 9
    Dernier message: 15/03/2013, 16h18
  4. Réponses: 4
    Dernier message: 28/07/2009, 12h32
  5. Réponses: 3
    Dernier message: 28/08/2007, 09h52

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