Bonjour,
Dans le cadre de mes études, j'ai pour objectif de créer un programme c++ me permettant d'ajouter/supprimer/visualiser des informations dans ma base de données Access. J'ai réussi à me connecter sur celle-çi et à afficher diverses informations des tables mais je n'arrive pas a ajouter des informations dans les champs. J'ai tenté le coups avec avec des requètes SQL du style:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
char szSql[256] = "INSERT INTO PROFESSEUR(Prof-Pre, Prof-Nom) VALUES ('Tata', 'Toto')";
Mais l'ordre SQL n'arrive pas a etre compilé.

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
Voici mon code:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include<conio.h>
 
 
#pragma comment(lib, "odbc32.lib")
 
int main(int argc, char *argv[])
{
//variables base de données
    static SQLHANDLE  hEnv;		//pointeur sur un environnement
    static SQLHANDLE  hDbc;		//pointeur sur une connexion
 
 
    int iOut;
    char strOut[256];
    //acces a la base de donnée
    char szDSN[256] = "driver={Microsoft Access Driver (*.mdb)};dbq=C:\\Users\\Alessandro\\Desktop\\ProG\\Machine Outil1.mdb";
    //ordres SQL
    char szSql[256] = "SELECT * FROM PROFESSEUR";	
 
 
    int ret1;
    int ret2;
    int ID;
    char Name[128];
 
 // 1 - Connexion a la BDD Access
    SQLAllocEnv(&hEnv);
    SQLAllocConnect(hEnv, &hDbc);
    if((SQLDriverConnect(hDbc, NULL, (unsigned char*)szDSN, SQL_NTS, (unsigned char*)strOut, 255, (SQLSMALLINT*)&iOut, SQL_DRIVER_NOPROMPT))==SQL_SUCCESS)
		printf("Connecte\n");
 
    // 2 - Preparation de la requete
HSTMT hStmt;//pointeur d'instruction ODBC.
		if(SQLAllocHandle(SQL_HANDLE_STMT,hDbc,&hStmt)==SQL_SUCCESS)
			printf("OK2\n");
if (SQLPrepare(hStmt, (unsigned char*)szSql, SQL_NTS)==SQL_SUCCESS)//Prépare l'ordre Sql 
			printf("Ordre Sql compile\n");
 
// 3 - Execution de la requete
 
SQLBindCol(hStmt, 1,SQL_C_ULONG,&ID,4,(SQLINTEGER*)&ret1);
SQLBindCol(hStmt,2,SQL_C_CHAR,Name,128,(SQLINTEGER*)&ret2);
 
		SQLExecute(hStmt);
 
    // 4 - Boucle pour afficher les resultats
    while(!(SQLFetch(hStmt) & 0xFFFE))
    {
        printf("{%i}{%s}\n",ID,Name);
    }
 
 
 
	// 5 - Liberations et fermeture de la connection a la BDD
    SQLFreeStmt(hStmt, SQL_DROP);
    SQLDisconnect(hDbc);
    SQLFreeEnv(hEnv);
 
    getch();
 
 
return 1;
}
Merci de votre aide.