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

  • Question

  • 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
     
    le programme est: 

       1. #include <conio.h>
       2. #include <stdio.h>
       3. #include <windows.h>
       4. #include <sql.h>
       5. #include <sqlext.h>
       6. #include <sqltypes.h>
       7.
    
       8. intmain()
       9. {
      10. SQLHENVenv;
      11.
    
      12. if(!SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_ENV,NULL,&env)))
      13. fprintf(stderr,"La fonction SQLAllocHandle a echoue (SQL_HANDLE_ENV).\n" );
      14. else
      15. {
      16. if(!SQL_SUCCEEDED(SQLSetEnvAttr(env,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0)))
      17. fprintf(stderr,"La fonction SQLSetEnvAttr a echoue.\n" );
      18. else
      19. {
      20. SQLHDBCcon;
      21.
    
      22. if(!SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_DBC,env,&con)))
      23. fprintf(stderr,"La fonction SQLAllocHandle a echoue (SQL_HANDLE_DBC).\n" );
      24. else
      25. {
      26. SQLCHARdsn[]="pays_dsn",uid[]="root",pwd[]="";
      27.
    
      28. if(!SQL_SUCCEEDED(SQLConnect(con,dsn,SQL_NTS,uid,SQL_NTS,pwd,SQL_NTS)))
      29. // if ( !SQL_SUCCEEDED(SQLConnect(con,(SQLCHAR *)"pays_dsn", SQL_NTS,(SQLCHAR *)"root", SQL_NTS,(SQLCHAR *)"", SQL_NTS)) )
      30. fprintf(stderr,"La fonction SQLConnect a echoue.\n" );
      31. else
      32. {
      33. SQLHSTMTstmt;
      34.
    
      35. if(!SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_STMT,con,&stmt)))
      36. fprintf(stderr,"La fonction SQLAllocHandle a echoue (SQL_HANDLE_STMT).\n" );
      37. else
      38. {
      39. if(!SQL_SUCCEEDED(SQLExecDirect(stmt,"SELECT * FROM pays_tbl;",SQL_NTS)))
      40. fprintf(stderr,"La fonction SQLExecDirect a echoue.\n" );
      41. else
      42. {
      43. SQLCHARpays[15],capitale[15];
      44.
    
      45. printf("PAYS > CAPITALE\n\n" );
      46.
    
      47. while(SQL_SUCCEEDED(SQLFetch(stmt)))
      48. {
      49. SQLGetData(stmt,1,SQL_C_CHAR,pays,sizeof(pays),NULL);
      50. SQLGetData(stmt,2,SQL_C_CHAR,capitale,sizeof(capitale),NULL);
      51. printf("%-14s %-14s\n",pays,capitale);
      52. }
      53. }
      54.
    
      55. SQLFreeHandle(SQL_HANDLE_STMT,stmt);
      56. }
      57.
    
      58. SQLDisconnect(con);
      59. }
      60.
    
      61. SQLFreeHandle(SQL_HANDLE_DBC,con);
      62. }
      63. }
      64.
    
      65. SQLFreeHandle(SQL_HANDLE_ENV,env);
      66. }
      67. getch();
      68. return0;
      69. }


    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ésolu?
     
    SVP, j'ai besoin de vos aides

    lundi 6 juillet 2009 08:54

Toutes les réponses