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 :

Copier un stringgrid vers un dbgrid


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Copier un stringgrid vers un dbgrid
    Bonjour,

    Je réalise une application en delphi (version7), n'ayant pas l'expérience d'un programmeur chevronné, j'ai utilisé une stringgrid afin de "parser" mes données provenant d'un fichier csv.

    Cependant je me rend compte qu'il est plus aisé d'utiliser un dbgrid pour gérer un rapport récapitulatif de mon traitement (Ayant trouvé beaucoup de ressource sur le net qui explique la manière d'utiliser qreport par exemple). Voila pourquoi je désirerai savoir comment copier les données d'un stringgrid vers dbgrid. J'ai trouvé différents posts qui présentent la manière de transférer une dbgrid vers un stringgrid, mais pas l'inverse.

    J'ajusterai en fonction de mon programme les données qui m'intéressent. Il se peut aussi qu'à l'avenir je sauvegarde mes résultats dans une base de données sur un serveur, couplé à sql par exemple... Mais je n'y suis pas encore.

    Est ce qu'une âme charitable pourrait me donner un exemple de programme que je pourrais transposer pour mon application qui permettrai de réaliser cela?

    Merci d'avance pour vos éclairage.

    Cordialement,

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Selon la version et license de ton Delphi, tu auras différente possiblité, pour une version pro, à partir de D4, tu as le TClientDataSet, qui permet un export en XML, si tu n'as pas un gros volume, c'est pas trop mal ...

    Ensuite, on ne remplit par une DBGrid, mais on lui attache un DataSource, auquel on attache un DataSet (le TClientDataSet), et c'est ce dernier que tu manipule, regarde FieldDefs, AddField, CreateDataSet, FieldByName, Append, Post ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Merci pour votre réponse,

    Après quelques recherche à partir de ce que vous m'avez indiquer sur la création et la connexion à la base de donnée, je n'arrive pas pour autant à associer les cellules de ma stringgrid avec les champs de la base. Quelle est la syntaxe qui permet de copier/associer la cellule avec le champ de la base?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Points : 115
    Points
    115
    Par défaut
    Salut Uriel2K,

    Tu dois remplir ligne par ligne et colonne par colonne. Tu peux procéder comme ceci.

    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
    18
     
    var
      ARow,
      ACol : integer;
    begin
      with StringGrid1 do
      begin
        For ARow:= 1 to RowCount -1 do
        begin
          Table1.Append;
          Table1.FieldByname('CHAMP1').AsString   := Cells[1, ARow];
          Table1.FieldByName('CHAMP2').AsInteger  := StrToInt(Cells[2, ARow]);
          .
          .
          Table1.Post;
        end;
      end;
    end;
    Il va d'abord remplir la ligne 1 avec les infos dans la ton champ1 de ta colonne, puis champ2 colonne2 etc...
    Ensuite il passe à la ligne 2 et recommence la même opération.

    Jeankiki

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Merci à tous,

    Je répond un peu tard , juste pour vous informer que j'ai continué à utiliser ma stringgrid. L'export vers la dbgrid je l'ai fait une fois mes données sur une base de donnée.

    En résumé, j'affiche mes données "parsées" avec la stringrid, mes données exportées sur la BDD sont affichés avec un dbgrid.

    Merci de votre participations.

    C'est résolu.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/10/2009, 19h34
  2. Réponses: 2
    Dernier message: 31/12/2005, 22h30
  3. Réponses: 7
    Dernier message: 22/12/2005, 09h56
  4. cherche comment copier le champ vers une autre champ
    Par khier dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 01/07/2005, 12h20
  5. copier une table vers une autre base de données
    Par Herveg dans le forum Oracle
    Réponses: 3
    Dernier message: 11/01/2005, 14h20

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