Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1650 connectés 

  FORUM HardWare.fr
  Programmation
  API Win32

  connecter à une base de données Mysql via ODBC à partir d'un programme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

connecter à une base de données Mysql via ODBC à partir d'un programme

n°1904260
dimadima
Posté le 10-07-2009 à 08:17:00  profilanswer
 

Salut,
 
Je voudrais connecter à une base de données Mysql via ODBC à partir d'un programme C sous Visual Studio 2008 Windows. J'ai Mysql version 4.0.15 (esayphp 1.7) et mysql-connector-odbc-3.51.19-win32.
j'ai testé la source de données (ODBC)qui j'ai ajouté  avec la base de données. ceci se passe bien.
 
le nom de DSN est : toto
le serveur : localhost
le nom d'utilisateur : root
le mot de passe est vide
 
Voici une partie de mon programme C:

Code :
  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include<stdlib.h>
  5. #include<string.h>
  6. #include <sql.h>
  7. #include <sqlext.h>
  8. #include <sqltypes.h>
  9. #include <sqlucode.h>
  10. #include <odbcinst.h>
  11. #include <Msdasql.h>
  12. #include <Msdadc.h>
  13. void main()
  14. {
  15. SQLRETURN retcode;
  16. //char design[20];
  17. int A,B,C,D;
  18. char request[100];
  19. //char dsn[20]="toto";
  20. //char uid[20]="root";
  21. //char pwd[20]="";  
  22. SQLINTEGER lon,la,lb,lc,ld,taille=SQL_NTS;
  23. SQLCHAR design[20];
  24. SQLHDBC hdbc;
  25. SQLHENV henv;
  26. SQLHSTMT hstmt;
  27. /*Allocate environment handle */
  28. retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); 
  29. if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) //{
  30.    /* Set the ODBC version environment attribute */
  31.    retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
  32.    if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) //{
  33.       /* Allocate connection handle */
  34.       retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
  35.      // if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
  36. //printf("%s","vrai" );
  37. //else
  38.  //printf("erreur\n" );
  39. //   }
  40.  
  41. //}
  42.              
  43.           // retcode = SQLConnect(hdbc,(SQLCHAR*)dsn, SQL_NTS,(SQLCHAR*)uid, SQL_NTS,(SQLCHAR*)pwd, SQL_NTS);
  44. retcode=SQLConnect(hdbc,(SQLCHAR *)"toto",SQL_NTS,(SQLCHAR *)"root",SQL_NTS,(SQLCHAR *)"",SQL_NTS);
  45. if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
  46. printf("%s","vrai" );
  47. else
  48. printf("Erreur sur l'instruction SQLConnect !\\n" );
  49. SQLAllocStmt ( hdbc, &hstmt);
  50. SQLBindCol(hstmt,1,SQL_C_CHAR,design,sizeof(design),&lon);
  51. SQLBindCol(hstmt,2,SQL_C_ULONG,&A,0,&la);
  52. SQLBindCol(hstmt,3,SQL_C_ULONG,&B,0,&lb);
  53. SQLBindCol(hstmt,4,SQL_C_ULONG,&C,0,&lc);
  54. SQLBindCol(hstmt,5,SQL_C_ULONG,&D,0,&ld);
  55. //SQLExecDirect(hstmt,(UCHAR FAR *)"select * from connaissance",SQL_NTS);
  56. strcpy(request,"select * from " );
  57. strcat(request,nom_table);
  58. strcat(request,";" );
  59. //strcat(request," where designation like ?" );
  60. //SQLPrepare(hstmt,"select * from connaidiabete where designation like ?",SQL_NTS);
  61. SQLExecDirect(hstmt,(UCHAR FAR *)request,SQL_NTS);
  62. //SQLPrepare(hstmt,request."where designation like ?",SQL_NTS);
  63. //SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR, SQL_VARCHAR,20,0,valeur,0,&taille);
  64. //SQLExecute(hstmt);
  65. while (SQLFetch(hstmt)!=SQL_NO_DATA)
  66. {
  67. if(strcmp(valeur,design)==0)
  68. printf("oui\n" );
  69. }
  70. SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
  71. SQLFreeHandle(SQL_HANDLE_ENV,henv);
  72. SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
  73. SQLDisconnect(hdbc);
  74. //SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
  75. //SQLFreeHandle(SQL_HANDLE_ENV,henv);
  76. }


 
 
Après la compilation et l'exécution j'aurais ce message:
Erreur sur l'instruction SQLConnect !\n
 
C'est à dire la connexion ne passe pas bien.
 
j'ai consulté la documentation sur la chaine de connexion dans visual studio 2008 dans le  
lien suivant. Mais je ne trouve pas une solution.
 
http://msdn.microsoft.com/en-us/li [...] S.85).aspx
 
Comment ce problème de connexion va être résolue?
Avez-vous un exemple de test pour tester ma connexion et traiter quelques requêtes ?
 
Le reste de travail se base sur la réussite du  connexion au base des données et l'exécution des requêtes.
SVP, j'ai besoin de votre aide.
 
Merci.

mood
Publicité
Posté le 10-07-2009 à 08:17:00  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  API Win32

  connecter à une base de données Mysql via ODBC à partir d'un programme

 

Sujets relatifs
[c#] connexion base de donnée avec ADO.NET[Résolu][VBA] Importer des données d'un fichier.txt
PHP/MySQL INSERT INTO en masse qui déraille (oubli de données)executer un programme de cygwin dans l'environnement windows
Changer le port de MySQLPSP, Base de données et accès concurent
Interface requête Base de données EXCEL 
Plus de sujets relatifs à : connecter à une base de données Mysql via ODBC à partir d'un programme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR