Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
farf's touch
13 avril 2005

Anjuta, C & Mysql

Au détour des mes pérégrinations "webesques", je suis tombé sur un site parlant d'Anjuta. Anjuta est une interface de développement sous linux intégrant le constructeur d'interface Glade.

Comme j'avais un peu de temps à perdre, je me suis dit qu'un petit essai ne coûtait rien. J'ai donc installé Anjuta-1.2.2 sur ma belle Ubuntu Hoary en m'assurant au préalable que j'avais bien tout sous la main (g++ et compagnie...)

Faire un essai en programme autonome pour n'afficher qu'un misérable "Hello World" n'ayant rien de bien amusant, je me suis lancé dans une petite connexion base de données. Au hasard, Mysql (version 4.01.x)!

En principe, l'installation du moteur mysql ne pose pas de problème.
Après installation, assurez vous de disposer en librairie de libmysqlclient12 et libmysqclient12-dev (pour les headers).

Vous trouverez alors le fichier mysql.h dans /usr/include/mysql, qui nous servira plus tard.

Vérifiez que votre $PATH inclut bien le répertoire contenant libmysqlclient.so. Dans le cas contraire, ajoutez l'emplacement dans /etc/ld.so.conf, et exécutez "ldconfig" en root pour reconfigurer vos liens symboliques.

Nous y sommes presque ! Reste juste une petite manipulation à opérer au niveau d'Anjuta.
Allez dans le menu "Préférences" -> "Compilateur/Editeur de liens..." -> "chemin des bibliothèques"
A cet endroit, indiquez "/usr/bin/mysql -lmysqlclient" puis Add et c'est tout ! (Faites gaffe si vous réouvrez le projet par la suite, il y a un petit bug et la ligne a une facheuse tendance à s'éclater sur deux lignes. Et ça, pour un build, c'est le mal puisque ça enchaine "-L/usr/bin/mysql -L/-lmysqlclient" au lieu de ce qui est indiqué ci-dessus).

Comme je ne suis pas chien, je vous mets un petit exemple bourrin histoire que vous voyez ce que ça peut faire éventuellement.
A vous de créer une base et d'indiquer vos propres caractéristiques de user, password, nom de base, nom de colonne et nom de table. Enjoy ;-)

#include <iostream>
#include <mysql/mysql.h>

int main()
{
    MYSQL mysql;
    MYSQL_RES* result;
    MYSQL_ROW row;
    MYSQL_FIELD* field;
    int n_rows = 0;
    int i,j;
   
    if (! mysql_init (&mysql)){
        printf("Erreur d\'allocation\n");
    }

    if (! mysql_real_connect(&mysql,"localhost","user","password","base",0,NULL,0))    {
        printf("Erreur de connexion\n");
    }

    mysql_query (&mysql,"SELECT votre_colonne FROM table");
    result = mysql_store_result (&mysql);
    n_rows = mysql_num_rows(result);
   
    for(j=0; j<n_rows;j++){
        i=0;
        mysql_field_seek(result,0);
        row = mysql_fetch_row(result);
        while((field = mysql_fetch_field(result))){
            printf ("%s: ",field->name);
            printf ("%s\n ",row[i++]);
        }
        printf("\n");
    }
    mysql_free_result(result);
   
    mysql_close(&mysql);
   
    return 0;
}

Publicité
Commentaires
F
Yess merci pour ce tuto, ça tourne nikel et ça met fin à pas mal de prises de têtes !<br /> <br /> Big merci à toi
G
Bonjour tout le monde.<br /> <br /> Comment avez vous récupéré"Anjuta"et comment l'avez vous installée?<br /> <br /> J'étais sous Windows avant et je suis passé sous Ubuntu 5.10.<br /> <br /> Cordialement
Publicité
Archives
Publicité