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 :
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
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(); }
... et encore un peu plus précisément ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ... // Fetch the first row of data //ICI MoveNext(); ...
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.
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);
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.
Partager