tu dois d'abord creer une base de donnees access simple ensuite il te faudra utiliser le ODBC(Open DatBase Connectivity) de windows, cet outil est deja sur ton ordinateur si tu utilises le winXp. pour acceder a cet outil tu fais Start>Run>odbcad32>Enter maintenant tu choisiras l'onglet System DSN tu clic sur le bouton Add et tu choisis Driver Microsoft Access dans la liste deroulante et tu cliques sur Finish une boite de dialogue apparaitra pour que tu puisses indiquer ou se trouve ta base de donnees. (La bdd doit etre fermee lors de cette operation). Apres tu essais ce code sources
#include <windows.h> #include <sql.h> #include <sqlext.h> // #include <sqltype.h>
int main() { SQLHENV environnement; // cette varible cree l'environnement qui sera le parent de notre connexion if ( !SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_ENV, NULL, &environnement)) ) fprintf(stderr, "La fonciton SQLAllocHandle a echoue.\n"); else { if ( !SQL_SUCCEEDED(SQLSetEnvAttr(environnement, SQL_ATTR_ODBC_VERSION, (void *) SQL_OV_ODBC3, 0)) ) fprintf(stderr, "La fonction SQLSetEnvAttr a echoue.\n"); else { SQLHDBC connexion; if ( !SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_DBC, environnement, &connexion)) ) fprintf(stderr, "La fonction SQLAllocHandle a echoue (SQL_HANDLE_DBC).\n"); else { SQLCHAR dsn[] = "pays_dsn", uid[] = "melem", pwd[] = "1234"; if ( !SQL_SUCCEEDED(SQLConnect(connexion, dsn,SQL_NTS, uid, SQL_NTS, pwd, SQL_NTS)) ) fprintf(stderr, "La fonction SQLConnect a echoue.\n"); else { SQLHSTMT statement; if( !SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_STMT, connexion, &statement)) ) fprintf(stderr, "La fonction SQLAllocHandle a echoue (SQL_HANDLE_STMT).\n"); else { if ( !SQL_SUCCEEDED(SQL_ExecDirect(statement, "SELECT * FROM pays_tbl;", SQL_NTS)) ) fprintf(stderr, "La fonction SQL_ExecDirect a echoue.\n"); else { SQLCHAR pays[15], capitale[15]; printf("PAYS > CAPITALE\n\n"); while (SQL_SUCCEEDED(SQLFetch(statement)) ) { SQLGetData(statement, 1, SQL_C_CHAR, pays, sizeof(pays), NULL); SQLGetData(statement, 2, SQL_C_CHAR, capitale, sizeof(capitale), NULL); printf("%-14s %-14s", pays, capitale); } } SQLFreeHandle(SQL_HANDLE_STMT, statement); } SQLDisconnect(connexion); } SQLFreeHandle(SQL_HANDLE_DBC, connexion); } } SQLFreeHandle(SQL_HANDLE_ENV, environnement); } return 0; }
NB.- Le nom de la base que j'ai utilise est pays_db et mon pilote a le nom de pays_dsn
|