Bonjour, J'essaie de me mettre aux base de donnée en C++ mais voila j'ai déjà un problème que je ne comprend pas du tout : Violation d'accès lors de la lecture de l'emplacement 0x0000003c.
Voici le code :
#include <iostream>
#include <stdlib.h>
#include <winsock.h>
#include <MYSQL/mysql.h>
using namespace std;
void main (void)
{
int i;
unsigned int NombreColonne;
MYSQL mysql;
if((mysql_init(&mysql))==NULL)
cout<<"Erreur Initialisation"<<endl;
else
{
if((mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option" ))!=0)
cout<<"Erreur MYSQL OPTION"<<endl;
else
{
// Connection Base de Données;
//if((mysql_real_connect(&mysql, "localhost", "root", "xxxx", 0, 0, 0,0))==NULL)
if((mysql_real_connect(&mysql,"localhost"," "," ","TEST",0,NULL,0))==NULL)
{
//Requête qui sélectionne tout dans la table
mysql_query(&mysql, "SELECT * FROM TABLE" );
//Déclaration des pointeurs de structure
MYSQL_RES *Resultat = NULL;
MYSQL_ROW row;
Resultat = mysql_store_result(&mysql);
if (Resultat) // il y'a des lignes
{
NombreColonne = mysql_num_fields(Resultat);
// recupérer les lignes, puis appeler mysql_free_result(result)
}
//On met le jeu de résultat dans le pointeur result
Resultat = mysql_use_result(&mysql);
// Le nombre de colonne
NombreColonne = mysql_num_fields(Resultat);
NombreColonne = mysql_field_count(&mysql);
/* Tant qu'il y a des lignes */
while ((row=mysql_fetch_row(Resultat))!=NULL)
{
for(i=0; i<NombreColonne;i++)
cout<<"["<<row[i]<<"]";
cout<<endl;
}
//Libération/Suppression du jeu de résultat
mysql_free_result(Resultat);
//Fermeture de MySQL
mysql_close(&mysql);
}
else // Sinon ...
{
cout<<"Une erreur s'est produite lors de la connexion a la BDD!"<<endl<<flush;
}
}
}
}
Je suis sous Windows XP, j'utilise Visual Studio 2010 C++ et EasyPHP. Merci beaucoup.