connexion base de donne access
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
Code:
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é.");
}
} |
Dans Manip.h il y a l'initialisation de la fonction ExecutRequet
BOOL ExecutRequet(char* Requet);
et dans Manip.cpp il y a la fonction ExecutRequet qui permet la connexion
Code:
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();
} |
Dans le fichier StdAfx.h il y a la connecxion avec les fichiers dll
Code:
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 |
J'ai copie Produit.mdb dans le repertoire Gest et dans Gest\Debug.
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.
:tagcode: