Salut,
Je suis actuellement en train de réaliser une application intranet. Pour ce projet j'ai besoin de faire des INSERT dans une base de données de type Access.
Grâce à ce script trouvé sur ce même site j'ai réussi à établir une connexion et ensuite pouvoir lire les données présentes dans la base.
J'ai donc voulu modifier ce script pour ensuite effectuer un INSERT dans la base. Maleresement je n'ais pas réussi à effectuer cette tâche malgrès beaucoup de recherche et d'essais. Sans compter que l'on trouve peu d'aide sur internet en ce qui concerne ce point.
Voici le code que j'ai effectué :
// Connexion et execution de requete sur un base de donnees Microsoft Access
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#pragma comment(lib, "odbc32.lib")
int main(int argc, char *argv[])
{
HENV hEnv;
HDBC hDbc;
RETCODE rc;
int iOut;
char strOut[256];
char szDSN[256] = "driver={Microsoft Access Driver (*.mdb)};dbq=[formation_test3.mdb];";
//char szSql[256] = "SELECT * FROM formation";
char szSql[256] = "INSERT INTO formation VALUES('', 10, 'inti stage', 20, '12/06/2007', '', 'max dep', 30, 'libelle serv', 40, 'libelle niv7', 50, 'libelle depart', 60, 'libelle salle', '15:00:00', '12/06/2007')";
//char szSql[256] = "UPDATE formation SET Numero_de_session='10' WHERE Code_stage='3115'";
//char szSql[256] = "INSET INTO formation VALUES
// 1 - Connexion a la BDD Access
rc = SQLAllocEnv(&hEnv);
rc = SQLAllocConnect(hEnv, &hDbc);
rc = SQLDriverConnect(hDbc, NULL, (unsigned char*)szDSN, SQL_NTS, (unsigned char*)strOut, 255, (SQLSMALLINT*)&iOut, SQL_DRIVER_NOPROMPT);
// 2 - Preparation de la requete
HSTMT hStmt;
rc = SQLAllocStmt(hDbc,&hStmt);
rc = SQLPrepare(hStmt,(unsigned char*)szSql, SQL_NTS);
if(rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) printf("NOK1\n");
else printf("OK1\n");
rc = SQLExecDirectA(hStmt,(unsigned char*)szSql,SQL_NTS);
if(rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) printf("NOK2\n");
else printf("OK2\n");
// 5 - Liberations et fermeture de la connection a la BDD
rc = SQLFreeStmt(hStmt, SQL_DROP);
rc = SQLDisconnect(hDbc);
rc = SQLFreeEnv(hEnv);
printf("\nfin\n");
getch();
return 0;
}
Merci par avance pour vos réponses car là je désespère !