Bonjour tout le monde
Je cherche a me connecter à une base de données en C.
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
// la version d'ODBC est de 3, pour permettre la connexion à des sources de données
SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0);
// Définition de notre connexion en lui attribuant pour environnement hdbc
SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
// Timeout du login défini à 5 s
SQLSetConnectAttr(
hdbc, (SQLINTEGER )
SQL_LOGIN_TIMEOUT,
(SQLPOINTER ) 5,
(SQLINTEGER )0
);
// Connexion à la source de données
SQLConnect(
hdbc,
(SQLCHAR*) "test.mdb", SQL_NTS, // le nom de la source de données
(SQLCHAR*) "admin", SQL_NTS, // le nom de login
(SQLCHAR*) "", SQL_NTS // le mot de passe
);
// Définition du curseur...
SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
// Exécution de la requête
SQLExecDirect (
hstmt, // Le curseur
(UCHAR FAR *) "insert into categories values ('1', 'ODBC et C', 'Connexion, base de données, ODBC, C')", // La requête à exécuter
SQL_NTS // ...
);
// Déconnexion de la source de données
SQLDisconnect(hdbc);
// Libération de la connexion
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
// Libération de l'environnement
SQLFreeHandle(SQL_HANDLE_ENV, henv);
// The end
J'ai trouvé ce code source sur le net mais impossible de la faire fonctionner. Le linker me sort une erreur du "undefined reference to 'SQL...' ". C'est peut etre à cause d'un librairie manquante. J'ai inclus libodbccp32.a mais ca ne marche toujours pas. Je ne sais pas si les 2eme argument de SQL_CONECT c'est un lien ODBC ou l'adresse de la base de données ?
Merci d'avance
