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

Composants VCL Delphi Discussion :

affecter le résultat d'une requéte dans un stringgrid


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut affecter le résultat d'une requéte dans un stringgrid
    Salut ; j'ai cherché un tuto sur l'affectation du résultat d'une requête vers un stringgrid mais j'ai rien trouvé!!!!!
    si quelqu'un a un lien ou un exemple je suis preneur. merci

  2. #2
    Membre éclairé
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 423
    Par défaut
    Bonjour,

    il faudrait en dire un peu plus, car là je ne vois pas de difficulté.

    y a t il plusieurs lignes de résultat, y a t il plusieurs colonnes ?

    Où est le problème exactement ?

    Car faire apparaître une valeur, dans une cellule, c'est la b, a BA de l'utilisation d'un TstringGrid.

  3. #3
    Membre chevronné Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 343
    Par défaut
    Citation Envoyé par redoran Voir le message
    Salut ; j'ai cherché un tuto sur l'affectation du résultat d'une requête vers un stringgrid mais j'ai rien trouvé!!!!!
    si quelqu'un a un lien ou un exemple je suis preneur. merci
    Soit tu affectes le DataSource de ta requête à un DBGrid (et c'est tout ! reste plus qu'à régler l'aspect visuel : taille des cellules, couleur, ....)

    Soit tu utilises un StringGrid, et là il te faut 2 boucles imbriquées pour remplir les cellules "à la main". Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // code non vérifié
    MaQuery.DataSet.FindFirst;
    With MonSgringGrid do
    begin
      While Not MaQuery.DataSet.Eof do
      begin
        j := 0; // ou 1 si tu as mis des entêtes
        for i := 0 to MaQuery.DataSet.FieldCount-1 do
          cells[i, j] := MaQuery.Fields.DataSet.Fields.Fields[i].AsInteger;
          // si tu as des champs de différents types, il faut remplacer cette boucle par une liste des cells[i,j] ....
        MaQuery.Fields.DataSet.Next;
        inc(j);
        end;
    end;

  4. #4
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    salut ;@ castor
    toujours sous [D7 + access 2003]

    1) j'ai jamais travaillé avec un tstringgrid ,
    2) je doit le formater selon un tableau spécifique ou un canevas,
    3) comment affecté les valeurs d'un query selon le nom des cellules?
    exemple:
    format du tableau:
    Option ! T1 ! T2 ! T3 ! T4 !
    A ! 30 ! 00 ! 50 ! 00!
    B ! 00 ! 01 ! 00 ! 00 !
    explication :
    si le query contient le champ T1 avec une valeur quelconque , je doit la mettre dans le T1 du stringgrid ainsi de suite ,
    les valeurs 00 dans le stringgrid correspond aux champs non trouvé dans le query .
    merci pour l'aide
    y'as certains tableaux quand en peut pas les réalisés par des requêtes, donc faut les dessinés ensuite affectés les données du Adoquery , là je me demande est ce que le choix de tstringgrid est le bon choix ?

  5. #5
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Slt ; [D7 + access]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    .............
    cells[i, j] := MaQuery.Fields.DataSet.Fields.Fields[i].AsInteger; // sa bloque ici message d 'erreur
    ...............

  6. #6
    Membre chevronné Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 343
    Par défaut
    Peut-être parce que la propriété TStringGrid.cells est de type string et non integer !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // essaie plutôt 
    cells[i, j] := MaQuery.Fields.DataSet.Fields.Fields[i].AsString;

  7. #7
    Membre éclairé
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 423
    Par défaut
    Bonjour,

    oui la question est un peu plus claire

    Je confirme dans un premier temps pour l'affectation de l'integer via asstring, comme te le dit Archonte.

    Pour les autres, il faut que tu charches dans ta première ligne le nom du champ, en supposant que tu les connaisses tous d'avance et que cette première ligne soit remplie.
    Une fois l'id de la colonne trouvée, il te faut trouver la ligne, ce que tu indiques par B, mais que tu ne précises pas plus.
    S'il s'agit juste de la ligne suivant ton dernier insert, il faut que tu le stocke où mieux que tu trouves un moyen pour aller chercher la ligne suivante vide. Par exemple en ne créant de ligne supplémentaires que lorsque nécessaire.

    Une fois ton id colonne et ton id ligne tu n'as plus, comme tu le montres ci-dessus, à remplir ta colonne via cell[C,L]:= monchamp.asstring;

    Attention, un TTstringgrid ne peut pas contenir 95 millions de lignes...

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

Discussions similaires

  1. Affecter le résultat d'une requête " createNativeQuery " dans une liste<Entity>
    Par gerxwcv dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 20/09/2013, 21h39
  2. Affecter le résultat d'une requête SQL dans une variable
    Par Tsumago dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/04/2013, 02h19
  3. Réponses: 7
    Dernier message: 30/06/2005, 11h06
  4. Enregistrer le résultat d'une requête dans un fichier Excel
    Par Isa31 dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 15h31
  5. Résultat d'une requête dans une variable...
    Par Hoegaarden dans le forum Bases de données
    Réponses: 6
    Dernier message: 28/04/2004, 14h51

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