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 :

API MySql avec DBgrid


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Ao�t 2006
    Messages
    79
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 79
    Par d�faut API MySql avec DBgrid
    bonjour,

    J'utilise l'API MySql pour r�cup�rer les donn�es de la table, et je souhaite les afficher dans le composant dbgrid, si j'utilise une liste box sa fonctionne mais j'aurais souhaite le faire avec un DBGrid.....


    Depuis le tant que la question tourne sur le forum, il n'y a toujours pas de solution......

    HELP ME !!!!!


    source :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    
    	MYSQL *mySQL;
    	mySQL = mysql_init(NULL);
    	MYSQL_RES *myRES;
    	MYSQL_ROW myROW;
    	AnsiString aStr;
    
    	if (!mysql_real_connect(mySQL, ADDR.c_str(), root.c_str(), password.c_str(), BDD.c_str(), 0, NULL, 0))
    	{
    	Application->MessageBox("Erreur de Login ou Password...","", MB_OK|MB_ICONEXCLAMATION);
    	}
    	else
    	{
    
    
    
       if (!mysql_query(mySQL, "select * from gestions_clients")) {
    	myRES = mysql_store_result(mySQL);
    	if (myRES) {
    		for(unsigned int i = 0; i < myRES->row_count; i++) {
    			myROW = mysql_fetch_row(myRES);
    			for(unsigned int j = 0; j < mysql_num_fields(myRES); j++) {
    				aStr = myROW[j];
    
                                      /*** ICI doit etre le DBGrid ***/
    
    
    				}
    			}
    			mysql_free_result(myRES);
    		}
    	}
       }

  2. #2
    Membre exp�riment� Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par d�faut Dbgrid
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    resultat->Fields[ x]->DisplayName; // ceci est le nom du champ/colonne
     
     resultat->Fields[ x ]->AsString 
     // ceci permet de lire la valeur du champ où est positionné le curseur
     
      resultat->FieldByName("NOM")->Value = "Bily.sdi"
     // ceci ecrira Bily.sdi dans le champ NOM sur la ligne où le curseur est  
     // positionné
     
    ex:
          resultat->FieldByName("CUST_NAME")->Value = CUST_NAME->Text;
          resultat->FieldByName("CONT_PERS")->Value = CONT_PERS->Text;
          resultat->FieldByName("CONT_NUM")->Value = CONT_NUM->Text;
          resultat->FieldByName("CONT_GSM")->Value = CONT_GSM->Text;
    en gros :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     while (!eof(....))
      { 
         resultat->Append(); // nouvelle enregistrement
    je t'ai envoy� un email PV
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
         resultat->Insert();  // mode insertion
         resultat->Edit();   // mode ecriture
     
         update_consult(); // mise a jour de ta bd
     
     }       
         resultat->Post();                                    
         resultat->Refresh();
     
         resultat_cpt->Caption = resultat->RecordCount;

  3. #3
    Membre confirm�
    Inscrit en
    Ao�t 2006
    Messages
    79
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 79
    Par d�faut
    j'ai pas trop compris le code,


    se que je veut ces que par exemple dans la premiere colone, il affiche tous se qui et contenu dans le champs nom de la table et que dans la deuxi�me il affiche tous les prenom contenu dans la table.....

  4. #4
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Il n'y a pas d'impl�mentation directe avec l'API MySQL.

    Si tu veux utiliser une grille quelconque, tu dois la remplir toi m�me, ligne par ligne et colone par colone.

  5. #5
    Membre exp�riment� Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par d�faut creation et remplissage d'une bd a partir d'une dbgrid
    Hi

    voici un exemple, tu trouvera comment proceder !

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
     
    void __fastcall TForm1::SaveClick(TObject *Sender)
    {
      SaveDialog1->FileName="Resultat.dbf";
     
      if(SaveDialog1->Execute())
      {
       CreateBD(ExtractFileName(SaveDialog1->FileName),
                ExtractFilePath(SaveDialog1->FileName));
      }
    }
    //-------------------------------------------------------------------------
     
    void TForm1::CreateBD(AnsiString Name,AnsiString Path)
    {
      // En premier, description de la table qui doit être nommée
      Table->Active=false;
      Table->DatabaseName = Path;
      Table->TableType = ttDBase; // ou ttdefault;
      Table->TableName = Name;
     //----------------------------------------
     
     if(!Table->Exists)
     {
      Table->Active = false; // Le composant Table ne doit pas être actif
      Table->FieldDefs->Clear(); // reset la table si qqch...
      TFieldDef *pNewDef; // pointeur sur la table
     
     // Ensuite description des champs
     // resultat est une dbgrid contenant des données via une requete sql
     
             // nombre de champ (titre)
      for(int x=0; x< resultat->FieldCount; x++) 
      {     // ajout d'une colone
        pNewDef = Table->FieldDefs->AddFieldDef();               
            // lecture des noms des colonnes de la dbgrid   
        pNewDef->Name = resultat->Fields[x]->DisplayName;
            // lecture de type de la colonne de la dbgrid   
        pNewDef->DataType = resultat->Fields[x]->DataType;
            // lecture de la taille de la colonnes de la dbgrid   
        pNewDef->Size = resultat->Fields[x]->Size;
      }
      Table->CreateTable();
     }
     
    //------------------------------------
     
     // remplissage de la bd
     Table->Active = false;
     Table->DatabaseName = Path;
     Table->TableName = Name;
     Table->Active=true;
     
                         // nombre d'enregistrement dans la dbgrid
     for (int y=0 ; y< resultat->Fields[0]->DataSet->RecordCount; y++)
     { 
       // mode ajout , insertion et edition ;
        Consult->Append(); Consult->Insert(); Consult->Edit();
     
      for (int x=0 ; x< resultat->FieldCount; x++)
      {
        // recherche le champ où il faut se positionner
        Table->FieldByName(resultat->Fields[x]->DisplayName)->Value
                                 = resultat->Fields[x]->AsString;
         OU
     
        // simplement
       Table->Fields[x]->Value = resultat->Fields[x]->AsString;
     
      }
     }
       //fermeture de la table
       Consult->Post(); 
       Consult->Refresh();
    }
    //----------------------------------------
    @+ � Toutes et Tous

  6. #6
    Membre exp�riment� Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par d�faut correction + ecriture txt pour Excel
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
      out = fopen(xls.c_str(),"w");
     
      for(int x=0; x< resultat->FieldCount; x++)
      {  // Ensuite description des champs
        pNewDef = Table->FieldDefs->AddFieldDef();
        pNewDef->Name = resultat->Fields[x]->DisplayName;
        pNewDef->DataType = resultat->Fields[x]->DataType;
        pNewDef->Size = resultat->Fields[x]->Size;
        fprintf(out,"%s\t",resultat->Fields[x]->DisplayName);
      }
      Table->CreateTable();
     }
     
     // remplissage de la bd
     Table->Active = false;
     Table->DatabaseName = Path;
     Table->TableName = Name;
     Table->Active=true;
     for (int y=0 ; y< resultat->Fields[0]->DataSet->RecordCount; y++)
     {
      Table->Append(); Table->Insert(); Table->Edit();
      fprintf(out,"\n");
     
       for (int x=0 ; x< resultat->FieldCount; x++)
      {
       Table->FieldByName(resultat->Fields[x]->DisplayName)->Value 
                               = resultat- >Fields[x]->AsString;
     
       fprintf(out,"%s\t",resultat->Fields[x]->AsString);
      }
     
      resultat->Fields[0]->DataSet->Next();
     
     }
     
      Table->Post();
      Table->Refresh();
      Table->Active=false;
      fclose(out);

Discussions similaires

  1. API mySQL avec Delphi
    Par deneche dans le forum Bases de donn�es
    R�ponses: 8
    Dernier message: 14/09/2010, 21h05
  2. probleme avec API mysql
    Par tyson75 dans le forum C++Builder
    R�ponses: 7
    Dernier message: 08/06/2007, 20h00
  3. Pb avec l'API Mysql :s
    Par ramislebob dans le forum C
    R�ponses: 5
    Dernier message: 05/09/2006, 19h15
  4. BCB6 & Mysql(api) :pb avec requete
    Par o_live dans le forum C++Builder
    R�ponses: 4
    Dernier message: 03/03/2005, 15h12
  5. Api mysql avec Devc++, erreur de compilation
    Par Viiince dans le forum Autres �diteurs
    R�ponses: 5
    Dernier message: 15/06/2004, 17h19

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