REQUETE MYSQL EN C (GCC)

cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008 - 5 mai 2004 à 14:36
cs_hdaniel Messages postés 37 Date d'inscription vendredi 9 juillet 2004 Statut Membre Dernière intervention 18 octobre 2010 - 10 nov. 2009 à 16:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/22502-requete-mysql-en-c-gcc

cs_hdaniel Messages postés 37 Date d'inscription vendredi 9 juillet 2004 Statut Membre Dernière intervention 18 octobre 2010 1
10 nov. 2009 à 16:12
Pour la différence entre mysql_connect et mysql_real_connect

un extrait de la source en dit long sur l'énooorme différence:

MYSQL *mysql_connect(MYSQL *mysql, const char *host,
const char *user, const char *passwd) {
return mysql_real_connect(mysql,host,user,passwd,NULL,9000,NULL,0);
}
cs_bilal Messages postés 87 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 mars 2010
1 avril 2008 à 19:19
voila j'ai trouve. ;-)
cela affiche le contenu de votre bd dans une grille avec le titre des colonnes.

MYSQL_RES * result;
MYSQL_ROW elementsColonne;
MYSQL_FIELD * fields;

AnsiString titre;

if (mysql_query(conn,"SELECT * FROM table1"))
{
//("Erreur dans la requête\n");
return;
}
else
{
result = mysql_store_result(conn);
fields = mysql_fetch_fields(result);
StringGrid1->ColCount = mysql_num_fields(result);
StringGrid1->RowCount = 0;

for(int i = 0; i < mysql_num_fields(result); i++)
{ titre = fields[i].name;
StringGrid1->Cells[i][0] = titre;
}

for(unsigned int i = 1; i <= result->row_count; i++)
{
elementsColonne = mysql_fetch_row(result);
StringGrid1->RowCount++;

for(unsigned int j = 0; j<= mysql_num_fields(result); j++)
StringGrid1->Cells[j][i] = elementsColonne[j];
}

}
cs_bilal Messages postés 87 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 mars 2010
1 avril 2008 à 17:07
comment connaitre tt les fonction possible utilisable en c,c++
si je fait cette requete select * table , cela m'affiche toute la bd mais pas le titre des colonnes !!
1°) comment dois je faire ?
2°) y a t'il autre chose que :
# MYSQL mysql;
# MYSQL_RES *result;
# MYSQL_ROW row;
3°) comment faire pour connaitre l'info des colonnes d'une table ? Int ; varchar ; date etc ???

Merci
pekotaga Messages postés 1 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 30 mars 2007
30 mars 2007 à 11:41
bonjour message d'un homme au bord de la crise de nerfs suite a de longue(mais alors trés longue) recherche sur ce sujet j'en arrive toujours a la meme conclusion
undefined reference to''
je sais qu'il faut les librairies mysql ce que j'aie fait je sait qu'il faut ajouter -lmysqlclient mais ce dernier est helas introuvable par mon agl
peut etre qqun aurra il eu des probleme similaires et peut etre pourra on me guider .
merci d'avance pour vos reponse et merci a l'auteur de ce source
jsonor Messages postés 49 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 5 septembre 2006
5 sept. 2006 à 22:47
Salut,
il faut installer le client MySQL (www.mysql.com)
nicompx Messages postés 107 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 15 juillet 2009
5 sept. 2006 à 15:54
Salut,
Je compile mon programme de la façon que vous préconisé mais j'ai l'erreur suivante :
/usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/bin/ld: ne peut trouver -lmysqlclient
collect2: ld returned 1 exit status

Que faire?

Merci d'avance
cs_gogomanu Messages postés 29 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 26 mars 2009
5 sept. 2006 à 15:26
Merci je cherchais si mon programme C++ windows serait facilement convertible en Linux... hé bien ça aurait été 100 fois plus simple sous Linux parce que l'ADO en C++ sur Windows il faut se le fanner !!!
Je me suis développé une classe qui a des fonctionnalités faciles de lecture/écriture des champs, et là je vois MYSQL_ROW qui a l'air de faire tout ça automatiquement en natif !
J'aurais préféré un "include mysql.h" à la place de MyODBC... J'ai déjà comparé le Service Windows avec le Daemon Linux, en fait tous les développements ont l'air plus simples sur Linux !
Bref merci pour cet exemple !
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 nov. 2004 à 18:13
il n'y a pas de mal ;)
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
15 nov. 2004 à 17:54
l'habitude de lire les doc en anglais et de prendre uniquement ce sens...
merci pour la précision linguistique
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 nov. 2004 à 17:46
non, deprecated = elle n'est plus d'usage (désapprouvé). déprécié ça veut dire "qui est moins apprécié", ou par extension qui a perdu de sa valeur. (la valeur d'une voiture se déprécie avec le temps)
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
15 nov. 2004 à 17:44
merci

effectivement, donc
mysql_connect est une fonction dépréciée
++
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 nov. 2004 à 17:41
http://www.yellis.net/docs/mysql/manuel_mysql_connect.html

petite recherche. je me posais la même question, et ce site de doc préconise la version mysql_real_connect
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
15 nov. 2004 à 17:29
ui, c'est exact

avec
mysql_real_connect( myData,
Host,
User,
Password,
NULL,
Port,
NULL,
0)

Host peut etre une adresse ip, un nom de seveur ou tout simplement localhost.


question:
quelle différence entre
mysql_connect
et
mysql_real_connect
?

Magicalement
++
Nono.
antoine_1977 Messages postés 29 Date d'inscription lundi 29 décembre 2003 Statut Membre Dernière intervention 1 novembre 2004
1 nov. 2004 à 00:06
j'ai réussi aussi sur WIN. ce qu'il appelle localhost c juste parcequ'il a sa base de données en local... toi il te suffit de mettre l'adresse de ton serveur sur internet.

Borland C++Builder v6.0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
31 oct. 2004 à 01:42
salut, j'ai quelques questions sur ta source (je c kel date un peu mais bon)...
1) #define MYSQL_HOST : ca correspond a quoi en fait? on fait quoi si la base de donnée se trouve en ligne sur le net?
2) tu dis "sous Linux", mais ne peut-on pas la compiler sous win32?
merci par avance pour tes reponses...
jsonor Messages postés 49 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 5 septembre 2006
6 juil. 2004 à 22:07
tu peux le trouver sur le site de mysql (www.mysql.com)
Fo télécharger les librairies de développement....
antoine_1977 Messages postés 29 Date d'inscription lundi 29 décembre 2003 Statut Membre Dernière intervention 1 novembre 2004
6 juil. 2004 à 02:58
ton fichier mysql.h et ce qui va avec.... on peut le trouver où?
jsonor Messages postés 49 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 5 septembre 2006
22 juin 2004 à 21:48
t'oré pas l'impression d'avoir plagié ma source par hazard... (http://www.cppfrance.com/code.aspx?ID=17636)
peut etre tu ne l'avais pas vu mais enfin ca m'étonnerait...c pas que ca me dérange tant mais bon, ca sert à rien de refourguer des sources qui existent déjà...

Voili voilou
Utilisateur anonyme
7 mai 2004 à 01:26
Super simple, concis
Tres pratique comme code, merci :)

++
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
5 mai 2004 à 14:36
je ne sais pas pq, mais moi j'utilise tjs "mysql_real_connect", ça fait quoi comme différence?

aussi, tu dois faire un mysql_close avant tes return -1 pr libérer la mémoire ;)
Rejoignez-nous