begin process at 2012 05 29 13:04:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Base de données

 > 

SQL

 > 

MySql GetString Acess Violation


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

MySql GetString Acess Violation

mercredi 1 septembre 2010 à 21:15:51 | MySql GetString Acess Violation

Benmic

Bonjour à tous!

Je fais en ce moment un programme en C++ qui se connecte à ma base de donnés MySql 5.1 (Ça venait avec Xampp). La connexion se déroule bien(connexion sur localhost), la requete SQL(Un select ben simple)se déroule correctement aussi sans incidents.

Sauf que quand je veut extraire des résultât un varchar(10), la fonction getString plante. Elle plante à vrai dire dans le fichier xUtiliti, qui ne fait même pas partie de la librairie libmysql.(Il me semble en tout cas).

J'ai alors fait un autre projet de test(même résultât). Voici son code.
Code C/C++ :
/*****************************************************
/ INCLUDES
*****************************************************/
#include "stdafx.h"

//#include <stdlib.h>
#include <iostream>
//#include <sstream>
#include <stdexcept>
	
#include "mysql_connection.h"
#include "mysql_driver.h"
	
//#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>


#define EXAMPLE_HOST "localhost:1764"
#define EXAMPLE_USER "Reader"
#define EXAMPLE_PASS "123"
#define EXAMPLE_DB "test"
	
using namespace std;
	
int main(int argc, const char **argv)
{	
    cout << "Connector/C++ testing No1..." << endl;
    cout << endl;

	
    try {
	
		//On instancie le driver et la connexion
		sql::mysql::MySQL_Driver *driver;  //Le driver????
		sql::Connection *con; //La connexion à la BD
		sql::Statement *stmt; //La requête SQL à executer
		sql::ResultSet *res; //Son résultât

		//On se connecte
		driver = sql::mysql::get_mysql_driver_instance();
		con = driver->connect(EXAMPLE_HOST, EXAMPLE_USER ,EXAMPLE_PASS);
		con->setSchema("test"); //La bd s'appelle test

		stmt = con->createStatement();
		res = stmt->executeQuery("SELECT * FROM utilisateurs");

		std::string usrName;
		std::string mp;

		while (res->next())
		{
			usrName = res->getString("UsrName"); //ICI ÇA PLANTE!!!!
			mp = res->getString("MpPasse");
			cout << "Nom: "<<usrName << " - Mot de passe" << mp << std::endl;;
		}
		delete res;
		delete stmt;
		delete con;

    } catch (sql::SQLException &e) {
        /*
          The MySQL Connector/C++ throws three different exceptions:
	
          - sql::MethodNotImplementedException (derived from sql::SQLException)
          - sql::InvalidArgumentException (derived from sql::SQLException)
          - sql::SQLException (derived from std::runtime_error)
        */
        cout << "# ERR: SQLException in " << __FILE__;
        cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << endl;
        /* Use what() (derived from std::runtime_error) to fetch the error message */
        cout << "# ERR: " << e.what();
        cout << " (MySQL error code: " << e.getErrorCode();
        cout << ", SQLState: " << e.getSQLState() << " )" << endl;
		system("pause");
        return EXIT_FAILURE;
    }
	
    cout << "Fait." << endl;
    return EXIT_SUCCESS;
}


Et voici ou ça arrête:
Code C/C++ :
 #if _ITERATOR_DEBUG_LEVEL == 2
	if (_Myproxy != 0)
		{	// proxy allocated, drain it
		_Lockit _Lock(_LOCK_DEBUG);

		for (_Iterator_base12 **_Pnext = &_Myproxy->_Myfirstiter;
	/*JUSTE ICI*/	*_Pnext != 0; *_Pnext = (*_Pnext)->_Mynextiter)
			(*_Pnext)->_Myproxy = 0;
		_Myproxy->_Myfirstiter = 0;
		}
 #endif /* _ITERATOR_DEBUG_LEVEL == 2 */


et son message d'erreur:

Exception non gérée à 0x5f80ad4a (msvcp100d.dll) dans MySQL.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0xccccccd0.



Je travail sur Visual Studio 2010 Ultimate x86(32 bits) sur un windows 7 professionel. Je l'ai aussi essayé avec Visual Studio 2008 et ça va même pas aussi loin.(Lui il bloque à la connection: impossible de trouver localhost.)

Je ne pense pas que ce soit mon système car je suis capable d'accèder à ma BD via un script php.

Quelqu'un à une idée? On est environ 20 sur ce problème depuis 2 jours et on a rien trouvé!

Merci à l'avance.
samedi 4 septembre 2010 à 13:32:41 | Re : MySql GetString Acess Violation

Benmic

Réponse acceptée !
Ok. On a trouvé. C'est un problème d'environnement de développement.

Pour Visual Studio 2010, il fallait compiler le code source MySQL Connector/C++ avec Visual Studio 2010. Celui-ci est beaucoup plus pointilleux que le 2005 ou encore le 2008 qui, soit dit en passant, marche finalement très bien avec les binairies donnés sur le site de mySQL . (J'ai trouvé mon erreur : le pare feu n'ouvrait pas le port 3306 pour Visual Studio 2008, mais le faisait pour le 2010).

Je sais que ces fichiers binaires pourraient être utiles à d'autres gens, alors avant de les mettre sur le net, je veux savoir si je le peux sans risquer de me faire chicaner.

Bye


Cette discussion est classée dans : mysql, test, include, example, getstring


Répondre à ce message

Sujets en rapport avec ce message

mysql.h [ par jer ] SalutJ'aimerais pouvoir accéder à mon serveur mysql depuis dev c++J'ai dld mysql-c++.h depuis mysql.com dans le dossier dev-c++/includeLorsque je comp c++ et mysql [ par toma2194 ] bonsoir,je developpe avec visual studio .net et je souhaite réaliser une appli qui se connecte à une base mysql sur un serveur distant.*j'ai récupéré Debutant : test NULL en C++ [ par Spacekiller ] Bonjour, voila je suis debutant et j'ai quelques problemes avec les fichiers.Lorsque je veux tester si un fichier n'existe ou pas j'ai toujour une err C++ VS Mysql [ par ours_aquatique ] Bonjour ,Aprés une semaine de recherche infructueuse , j'ai toujours le probleme suivant:je compile sous devC++ j utilise Mysql (V4.et des poussieres) probleme de connection [ par MadMatt ] Bonjour à tousJe voudrais ouvrir une base de données en C++ sous Linux (redhat 8) et avec KDevelop.Pour se faire, il faut que j'utilise les fonctions API mySQL et C (le retour) [ par Panama Beach ] Salut,Tout d'abord merci à tous ceux qui m'ont aidé auparavant.Je vais resituer le problème : j'aimerai developper une application C (sous dos) utilis Avt l'ouverture de session [ par yserver ] Boujours a tous.J'ai besoin de vos lumière. SVP.C'est pas reellement un probleme de programation (enfin je crois pas). Mon problème consite simplement Segmentation Fault avec Mysql API [ par BenjZ ] Salut à tous,J'ai un GROS et URGENT problème euh... existentielJe n'arrive pas à faire une simple appli pour me connecter à MYSQL depuis C++, sans qu' Fuite memoire + Debug [ par Manson ] Bonjour a tous.Voila j'ai un gros probleme, voila un bout de code qui me met la tete a l'envers, et j'aimerai que l'on m'explique ce qui se passe :#pr C et mySQL [ par Panama Beach ] Bonsoir, Désolé pour le titre bateau, je sais qu'il apparait souvent, mais j'ai fait une recherche sur plusieurs pages et je n'ai pas


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,187 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales