Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Base de données sous linux
Envoyé par: Robin

Boujours a tous
Je voudrais pouvoir recuperer des infos contenues dans une base de données mysql a partir d'une application crée sous kdevelop en c++.
Mais je n'arrive pas à établir la connection avec la base qui se trouve en local ni a envoyer mes requetes sql.
Si l'un d'entre vous avais un exemple de code pour realiser ceci, cela m'aiderai bien!
Merci d'avance

Poste le Monday 21 March 2005 15:24:09
Répondre     Citer    
Re: Base de données sous linux
Envoyé par: mute

[www.google.fr]

google est ton ami

Poste le Tuesday 22 March 2005 12:43:02
Répondre     Citer    
Re: Base de données sous linux
Envoyé par: Bernard74

Un bout de c qui devrait t'aider :
ce n'est pas de moi, source récupérer sur un forum de devel, mais je l'ai testé et çà marche sans aucun pb.

Bon courage


il faut linker lors de la compilation avec la libraire mysql ...donc qd tu compiles, fo faire "gcc -o ServeurMysql.cpp serveur.exe -lmysqlclient"
(-l pour link et ensuite, le nom de la librairie : mysqlclient, des fois c simplement mysql, fo tester)


#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <mysql/mysql.h>


void requete(MYSQL *conn)
{
MYSQL_RES *result;
MYSQL_ROW elementsColonne;
unsigned int nbColonnes;
int i;

if (mysql_query(conn,"SELECT * FROM nom_table"))
{
printf("Erreur dans la requête\n");
return;
}
else // requête bonne, traitons les données qu'elle renvoit
{
result = mysql_store_result(conn);
if (result != NULL) // MySQL peut extraire des résultats
{
nbColonnes = mysql_num_fields(result);

// récupère les enregistrements un par un
while ((elementsColonne = mysql_fetch_row(result)))
{
for (i = 0; i < nbColonnes; i++)
printf("%s\t", (elementsColonne != NULL) ? elementsColonne : "NULL");
printf("\n");
}
// on libère la mémoire prise pour les résultats
mysql_free_result(result);
}
else
printf("Aucun résultat à la requête !\n");
}
}


int main(int argc, char*argv[])
{
MYSQL *conn;

// initialisation
if((conn = mysql_init(NULL)) == NULL)
{
printf("Erreur d'initialisation\n");
return 0;
}

// connexion au serveur (ici, en local)
if(mysql_real_connect(conn,"localhost","nom_utilisateur","mot_de_passe","nom_base",0,NULL,0)==NULL)
{
printf("Erreur de connexion\n");
return 0;
}

// on lance la requête
requete(conn);

// on ferme la connexion au serveur MySQL
mysql_close(conn);
}


Poste le Wednesday 6 April 2005 17:08:32
Répondre     Citer    
Re: Base de données sous linux
Envoyé par: mute

C'est marrant çà ressemble beaucoup aux résultats que l'on trouve en cliquant sur le lien que j'ai mis au dessus.

C'est bien sympathique Bernard74 mais tu lui maches un peu beaucoup le travail. Je pense qu'il faut essayer d'habituer les gens à chercher un peu, surtout dans un cas comme çà.
Faire une recherche "connection mysql c++" çà prend presque moins de temps que poster sur un forum. Enfin ce n'est que mon avis.

Merci pour lui.

Poste le Thursday 7 April 2005 13:55:38
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Base de données sous linux
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons