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

C++Builder Discussion :

Pour les sp�cialistes de TStringGrid


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Inscrit en
    Juin 2007
    Messages
    362
    D�tails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par d�faut Pour les sp�cialistes de TStringGrid
    Salut � tous!

    voila j'ai un petit probl�me non dur � r�soudre je pense, mais la je bute dessus.

    J'ai une TStringGrid sur ma Form, elle a 3 colonnes: NomEnfant, PrenomEnfant, et DateNaissanceEnfant.

    Je veux envoyer le contenu de cette grid dans une base, o� chaque colonne serait un champ de ma table Enfant.

    Le hic dans tout ca, est que je ne vois pas comment ressortir mes infos de la grid. J'ai r�ussi a tout passer dans un TStringList, mais apr�s je suis bloqu�...

    Avez vous une id�e de la facon dont je pourrai extraire les infos de ma grid et les envoyer dans la bdd?

    merci par avance,

  2. #2
    R�dacteur/Mod�rateur
    Avatar de ero-sennin
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par d�faut
    Salut,

    Un petit truc de ce genre ne t'irai pas ? :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      for (int ligne=1;ligne<=StringGrid1->RowCount-1;ligne++)
      {
          Query1->SQL->Clear();
          Query1->SQL->Add("INSERT INTO maTable (NomEnfant,PrenomEnfant,DateNaissanceEnfant)");
          Query1->SQL->Add("VALUES (:Nom,:Prenom,:DateNaissance)");
          Query1->ParamByName("Nom")->AsString=StringGrid1->Cells[0][ligne];
          Query1->ParamByName("Prenom")->AsString=StringGrid1->Cells[1][ligne];
          Query1->ParamByName("DateNaissance")->AsDate=StringGrid1->Cells[2][ligne];
          Query1->ExecSQL();
      }
    }
    A toi de faire la connexion avec la BDD correctement
    A+

  3. #3
    Expert confirm�
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par d�faut
    bonjour,

    tu peux �galement utiliser les fonctions C+Builder (sans doute plus rapide qu'une requ�te SQL):
    Code c++ : 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
    19
    20
    21
    22
    23
     
       int ligne;
       try
        {
            MaTable->Open(); // ouverture de la table
            MaTable->Append(); // on se place à la fin
     
            for (ligne=1; ligne < StringGrid1->RowCount; ligne++)
            {
                MaTable->Insert();  // mode insertion
                MaTable->FieldByName("NomEnfant")->AsString  = StringGrid1->Cells[0][ligne];
                MaTable->FieldByName("PrenomEnfant")->AsString  = StringGrid1->Cells[1][ligne];
                MaTable->FieldByName("DateNaissanceEnfant")->AsString = StringGrid1->Cells[2][ligne];
                MaTable->Post(); //on ajoute les valeurs à la table
            }
     
            MaTable->Close(); //fermeture de la table
        }
        catch(...)
        {
            MaTable->Close();
            MessageBox(this->Handle, "Erreur...", "Erreur", MB_OK | MB_ICONWARNING);
        }

    N'oublie pas de pr�ciser les attributs Tablename et DataBasename de l'objet MaTable de type TTable.

  4. #4
    Membre �clair�
    Inscrit en
    Juin 2007
    Messages
    362
    D�tails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par d�faut
    Oki je vois un peu mieu, merci.

    Par contre dans mon cas, j'ai pass� le contenu de chaque cellule de ma StringGrid dans une TStringList.

    Donc ce pose le probl�me de ressortir correctement les valeurs de ma StringList et de les ajouter a la base...

    Comment utilisez vous les StringList?

    Merci par avance,

  5. #5
    Expert confirm�
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par d�faut
    exemple :

    Code c++ : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    TStringList *MaListe = new TStingList();
    int n;
    AnsiString data;
     
    //.....
    for (n=0; n<MaListe->Count; n++)
        data = MaListe->Strings[n];

    si tu utilises 3 listes (une pour chaque colonne) veille bien � ce que MaListe->Sorted = false, sinon tu pourrais avoir des surprises

  6. #6
    Membre �clair�
    Inscrit en
    Juin 2007
    Messages
    362
    D�tails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par d�faut
    ok merci

    Sinon, petit conseil ce coup ci, vu que sur ma Form j'utilise une TStringGrid, j'ai besoin de transf�rer � une classe autres que ma form le contenu de cette Grid, j'utilisais jusqu'a maintenant une TStringList, d'o� mes diff�rentes questions.

    Est ce que la StringList est plus appropri�e � ce genre de chose, ou existe il d'autres m�thodes plus rapide ou plus "pratique" .

    Merci par avance,

Discussions similaires

  1. Pour les sp�cialistes des Cartes M�res !
    Par zakuli dans le forum Composants
    R�ponses: 8
    Dernier message: 04/12/2005, 07h30
  2. Probleme pour les insertion au format etranger
    Par Sandrine75 dans le forum XMLRAD
    R�ponses: 5
    Dernier message: 19/03/2003, 10h55
  3. R�ponses: 2
    Dernier message: 08/10/2002, 18h26
  4. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    R�ponses: 2
    Dernier message: 04/04/2002, 21h45

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