IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[VC6][MFC][MYSQL] Access violation à l'ouverture de mon RecordSet


Sujet :

MFC

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Par défaut [VC6][MFC][MYSQL] Access violation à l'ouverture de mon RecordSet
    Bonsoir à toutes et à tous,

    J'ai une petite base de données (MYSQL) dont j'aimerai afficher les données dans une application MFC SDI. Je suis passé par la case FAQ très complète je dois dire au sujet des bases de données mais je rencontre toujours un problème.

    Lorsque j'exécute mon application, j'ai une access violation qui intervient ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    void CRecordView::OnInitialUpdate()
    {
    	CRecordset* pRecordset = OnGetRecordset();
    	// recordset must be allocated already
    	ASSERT(pRecordset != NULL);
     
    	if (!pRecordset->IsOpen())
    	{
    		CWaitCursor wait;
    //ICI		pRecordset->Open();
    	}
     
    	CFormView::OnInitialUpdate();
    }
    En debug je constate qu'en fait ça explose dans la méthode MoveNext :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    		// Fetch the first row of data
    //ICI		MoveNext();
    ...
    ... et encore un peu plus précisément ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		// Fetch the data and check for errors
    //ICI		nRetCode = FetchData(wFetchType, nRows, &m_dwRowsFetched);
    Je ne comprend pas pourquoi ça explose car j'ai installé le driver ODBC pour MYSQL et j'ai fait une petite application de test où je me tape manuellement l'ouverture de la base de données, la récupération des données et l'affichage, par conséquent, j'ai tout ce qu'il faut pour me connecter et récupérer les données.

    Pour donner un peu plus d'information je peux dire que :
    * ma base de donnée ne contient qu'une table avec 2 champs et 2 enregistrements (1 champ keyde type TYNYINT et 1 champ value de type VARCHAR)
    * j'ai créé dans mon formulaire 2 contrôle CEdit que j'ai associé aux champs de ma base de données comme indiqué dans la FAQ et la méthode DoDataExchange semble être conforme à celle présentée dans la FAQ

    Bref, je ne vois pas trop ce que j'ai fait de mal et si quelqu'un d'entre vous à une idée pour me permettre d'avancer je suis prenneur.

    En attendant, merci d'avance et bonne soirée à toutes et à tous.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    pourquoi tu n'utilises pas l'interface C++ pour la connexion mysql ?, ça sera beaucoup plus rapide qu'avec ODBC .

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Par défaut
    Je pensais qu'avec l'interface ODBC ça suffirait.

    Tu penses qu'utiliser l'interface C++ pour la connexion mysql va régler mon problème ?

    Est ce que ça change quelque chose pour la définition d'un projet SDI avec le WIZARD ?

    D'avance merci.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Par défaut
    Après une recherche sur les causes éventuelles de mon problème, voici la réponse que j'ai trouvé : le driver ODBC pour mysql que j'ai utilisé (le dernier disponible) bug ... pas trop le temps de savoir pourquoi mais c'est ainsi.

    Solution mise en place, testée et approuvée : utiliser le driver antérieur (le 3.51 en lieu et place du 5.1).

    Plus d'access violation au démarrage de l'application !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] [MySQL] SQLSTATE[42000]: Syntax error or access violation: 1064
    Par Domotik35 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/07/2011, 16h42
  2. VB 2008 access violation ouverture pdf
    Par cricrides dans le forum VB.NET
    Réponses: 2
    Dernier message: 13/01/2010, 22h08
  3. Erreur Access Violation : API mySQL et Builder 6
    Par Invité dans le forum C++Builder
    Réponses: 33
    Dernier message: 14/11/2008, 11h11
  4. Réponses: 2
    Dernier message: 20/11/2007, 10h38
  5. Réponses: 3
    Dernier message: 22/05/2002, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo