Créer DSN pour mysql par code

Publié le par Pascal

Voici la question je me pose en ce moment: Comment créer un DSN pour mysql par code c++ sous window xp.

A partir de cette question, j’ai cherché la réponse sur google, mais pas grande chose trouvée. Ou même des points intéressants trouvés mais à cause des petites erreurs cela fonctionne pas.

Voilà la solution sous windows xp et avec mysql connector3.51, j’espère que cela peut vous aider dans le même cas ou vous en avez besoin.

Bien entendu, il faut utiliser API SQLConfigDataSource dans le odbccp32.dll.

Vous devez inclure fichier tête 

 #include <ODBCINST.H>

 SQLConfigDataSource (NULL,

         ODBC_ADD_DSN,

         "MySQL ODBC 3.51 Driver" ,         "SERVER=localhost\0DSN=YourDsnName\0UID=Titi\0PWD=123456\0DATABASE=MyTestDB\0\0")

dont Titi est userid et 123456 est votre password……

Faire attention que chaque élément de 4ème paramètre est terminé par \0, et let le 4ème paramètre lui même est termine par \0. Je vous rappelle que 3ème paramètre dépend la version de votre odbc, simplement écrit MySql comment certain dit sur Internet ne fonctionne pas.

Pour le détail de API, veuillez aller en msdn. Généralement, on peut faire les opérations ci-dessous

ODBC_ADD_DSN = 1        # Ajouter une source de donnée utilisateur

ODBC_CONFIG_DSN = 2     # Configurer source une source de donnée

ODBC_REMOVE_DSN = 3     # Supprimer une source de donnée

ODBC_ADD_SYS_DSN = 4    # ajouter une source de donnée au niveau système

DSNODBC_CONFIG_SYS_DSN = 5 # Configurer une source de donnée au niveau système

DSNODBC_REMOVE_SYS_DSN = 6 # remove a system DSN

Si vous faites  cela dans une c++  exemple Visual C++ sans MFC , n’oublie par d’inclure windows.h avant odbcinst.h, faute de cela la compilation arrête avec message

includesqltypes.h(114) : error C2146: syntax error : missing ';' before identifier 'SQLHWND'

 

Publié dans Informatique

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article