Bonjour a tous,
Je veux ajouter un champ référence dans une base de donnée access que j'ai l'appelé Produit.mdb.
Dans l'evenement de bouton ajouter, j'ai inserer le requete sql.
j'ai un seul champ textfield.
voila la fonction de bouton
Dans Manip.h il y a l'initialisation de la fonction ExecutRequet
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
16
17
18
19
20 #include "Manip.h" void CGestView::OnAjouter() { // TODO: Add your control notification handler code here char text[10]; m_Editstatic.GetWindowText(text, 10); char p[1024]; sprintf(p,"INSERT INTO Produit(Ref) VALUES('%s')",text); if (ExecutRequet(p)) { MessageBox ("Le produit a été bien enregistré."); } }
BOOL ExecutRequet(char* Requet);
et dans Manip.cpp il y a la fonction ExecutRequet qui permet la connexion
Dans le fichier StdAfx.h il y a la connecxion avec les fichiers dll
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
16
17
18
19
20
21
22
23
24
25
26
27
28 #include "StdAfx.h" #include "Manip.h" #define TAILLE_BUFFER 1024 CHAR szBuffer[TAILLE_BUFFER]; BOOL ExecutRequet(char* Requet) { CoInitialize(NULL); try { _ConnectionPtr pConn("ADODB.Connection"); _RecordsetPtr pRst("ADODB.Recordset"); pConn->Mode = adModeShareExclusive; pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Produit.mdb", "", "", 0); // Note 1. pRst->Open(Requet, _variant_t((IDispatch *) pConn, true), adOpenDynamic, adLockReadOnly, adCmdText); //pRst->Close(); return true; } catch (_com_error &e) { AfxMessageBox(e.Description()); return false; } ::CoUninitialize(); }
J'ai copie Produit.mdb dans le repertoire Gest et dans Gest\Debug.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #include <math.h> #import "c:\Program Files\Fichiers communs\system\ado\msado15.dll" no_namespace rename("EOF", "EndOfFile") #import "C:\Program Files\Fichiers communs\System\Ole DB\Oledb32.dll" no_namespace rename("EOF", "EndOfFile") #define TAILLE_BUFFER 1024
Il affiche 0 error mais dans l'execution il affiche le resultat de la fonction qui est dans catch (AfxMessageBox(e.Description()).
Quelle est l'erreur je ne sais pas.
Merci d'avance.
Partager