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;
} |
Partager