GNT sans publicité, site mobile, fonctionnalitées exclusives...

Connecter à une base de données Mysql via ODBC à partir d'un programme C sous Visual Studio 2008 Windows.

Le
programmation
Salut,

Je voudrais connecter à une base de données Mysql via ODBC à partir
d'un programme C sous Visual Studio 2008 Windows.
le nom de DSN est : pays_dsn
le nom d'utilisateur : root
le mot de passe est vide

#include <conio.h>
#include <stdio.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>

int main()
{
SQLHENV env;

if ( !SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_ENV, NULL, &env)) )
fprintf(stderr, "La fonction SQLAllocHandle a echoue
(SQL_HANDLE_ENV).");
else
{
if ( !SQL_SUCCEEDED(SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION,
(void *)SQL_OV_ODBC3, 0)) )
fprintf(stderr, "La fonction SQLSetEnvAttr a echoue.");
else
{
SQLHDBC con;

if ( !SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_DBC, env,
&con)) )
fprintf(stderr, "La fonction SQLAllocHandle a echoue
(SQL_HANDLE_DBC).");
else
{
SQLCHAR dsn[] = "pays_dsn", uid[] = "root", pwd[] =
"";

if ( !SQL_SUCCEEDED(SQLConnect(con, dsn, SQL_NTS, uid,
SQL_NTS, pwd, SQL_NTS)) )
// if ( !SQL_SUCCEEDED(SQLConnect(con,(SQLCHAR *)"pays_dsn",
SQL_NTS,(SQLCHAR *)"root", SQL_NTS,(SQLCHAR *)"", SQL_NTS)) )
fprintf(stderr, "La fonction SQLConnect a echoue.
");
else
{
SQLHSTMT stmt;

if ( !SQL_SUCCEEDED(SQLAllocHandle
(SQL_HANDLE_STMT, con, &stmt)) )
fprintf(stderr, "La fonction SQLAllocHandle a
echoue (SQL_HANDLE_STMT).");
else
{
if ( !SQL_SUCCEEDED(SQLExecDirect(stmt,
"SELECT * FROM pays_tbl;", SQL_NTS)) )
fprintf(stderr, "La fonction SQLExecDirect
a echoue.");
else
{
SQLCHAR pays[15], capitale[15];

printf("PAYS > CAPITALE");

while (SQL_SUCCEEDED(SQLFetch(stmt)))
{
SQLGetData(stmt, 1, SQL_C_CHAR, pays,
sizeof(pays), NULL);
SQLGetData(stmt, 2, SQL_C_CHAR,
capitale, sizeof(capitale), NULL);
printf("%-14s %-14s", pays,
capitale);
}
}

SQLFreeHandle(SQL_HANDLE_STMT, stmt);
}

SQLDisconnect(con);
}

SQLFreeHandle(SQL_HANDLE_DBC, con);
}
}

SQLFreeHandle(SQL_HANDLE_ENV, env);
}
getch();
return 0;
}

Après la compilation et l'exécution j'aurais ce message:

La fonction SQLConnect a echoue.

J'ai pris cet exemple de lien suivant:
http://melem.developpez.com/langagec/odbc/

Comment ce problème de connexion va être résolue?

SVP, j'ai besoin de vos aides.
Lire les 16 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 4
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
domi
Le #19702011
programmation wrote:
Salut,

Je voudrais connecter à une base de données Mysql via ODBC à partir
d'un programme C sous Visual Studio 2008 Windows.



/....
/....
La fonction SQLConnect a echoue.

J'ai pris cet exemple de lien suivant:
http://melem....

Comment ce problème de connexion va être résolue?



Eviter ce genre de lien (surtout ce site..)
et prends les nombreux exemples de Msdn, comme
http://support.microsoft.com/kb/252699 ,
notamment pour la gestion d'erreurs , fonction HandleError pour savoir
l'origine de l'erreur
Et changer le driver pour MYSQL bien sur.

Et c'est plus simple avec les libs MYSQL : voir le lien donné récemment :
http://www.arcanthea.com/opensource...ql-tut.pdf
Sylvain SF
Le #19702191
programmation a écrit :
Salut,

Je voudrais connecter à une base de données Mysql via ODBC à partir
d'un programme C sous Visual Studio 2008 Windows.



cela suppose d'avoir créé l'alias de connexion ODBC, l'as-tu fait ?
relire en cas de besoin.

comme suggéré, il est bcp plus efficace (voire simple car les erreurs
sont moins masquées) d'utiliser directement l'API mySQL.

le "connector/C++" est également une bonne alternative pour débuter

Sylvain.
marc
Le #19733671
programmation a écrit :
Salut,

Je voudrais connecter à une base de données Mysql via ODBC à partir
d'un programme C sous Visual Studio 2008 Windows.



comme les autres réponses (Msdn et mysqllib) et pour ODBC, active les
Traces ODBC et tu auras de suite la cause de l'erreur
programmation
Le #19754661
On 10 juil, 09:25, marc
programmation a écrit :

> Salut,

> Je voudraisconnecter à une base de données Mysql via ODBC à parti r> d'un programme Csous Visual Studio 2008 Windows.

comme les autres réponses (Msdn et mysqllib) et pour ODBC, active les
Traces ODBC et tu auras de suite la cause de l'erreur


programmation
Le #19754801
On 10 juil, 09:25, marc
programmation a écrit :

> Salut,

> Je voudraisconnecter à une base de données Mysql via ODBC à parti r> d'un programme Csous Visual Studio 2008 Windows.

comme les autres réponses (Msdn et mysqllib) et pour ODBC, active les
Traces ODBC et tu auras de suite la cause de l'erreur





Salut,

Après la compilation et l'exécution j'obtiens:

retcode = -1 // c'est la valeur de retour de SQLConnect
Erreur sur l'instruction SQLConnect Impossible de se connecter a la
source de donnees:
1. [

- Qu'est ce que signifie ce message d'erreur ?: 1. [
Publicité
Suivre les réponses
Poster une réponse
Anonyme