Connectionà une base de données Ms sql en c++??

Connectionà une base de données Ms sql en c++?? - C++ - Programmation

Marsh Posté le 25-05-2005 à 16:40:18    

Salut tout le monde!!! :hello:  
 
J'ai un problème et j'arrive pas à trouver de solution.
Voilà, alors c'est tout simple:
j'ai des bases

Reply

Marsh Posté le 25-05-2005 à 16:40:18   

Reply

Marsh Posté le 25-05-2005 à 16:44:05    

Désolé je me suis planté de touche!!!!:D
 
Donc je reprend :  
J'ai une base de données de type ms-sql sur un serveur (windows 2003) et avec un programme en c++, je souhaiterais me connecter à cette base et lui insérer des valeurs obtenues précedement dans mon programme.
 
Comment je peux faire pour me connecter sur la base???
svp, HELP!

Reply

Marsh Posté le 25-05-2005 à 17:34:56    

Je te conseille la librairie MySQL++. Perso je l'utilise depuis 2 ans, c'est facile et intuitif.
 
tu peux la trouver ici http://tangentsoft.net/mysql++/
 

Reply

Marsh Posté le 25-05-2005 à 18:51:58    

oui mais ça ne lui servira pas bcp la doc pour MySQL puisqu'il travaille avec SQL SERVER (si je ne me trompe pas ms-sql => microsoft sql????)

Reply

Marsh Posté le 25-05-2005 à 19:55:25    

alors regarde du cote de ODBC et des objets CRecordSet
 

Reply

Marsh Posté le 26-05-2005 à 08:32:58    

oué c'est tout à fait ca moi23372. Je travail avec sql server.
 
Je connait pas ODBC et c'est quoi CRecordSet??

Reply

Marsh Posté le 26-05-2005 à 08:52:38    

ODBC est une couche logiciel qui te permet de faire des connexion à des bases de données!  
je te conseille donc de chercher de la documentation sur google afin de pouvoir manipuler ce genre d'objet...

Reply

Marsh Posté le 26-05-2005 à 09:28:03    

oki merci. Mais est-ce-qu'il faut installé quelque chose sur le serveur sql??? (parce que ca je peut pas)
 
Sinon si je fait mon programme en c++ avec odbc, quand je vais compilé,il va me créer un exécutable et est-ce-que cet exécutable va fonctionné correctement si il n'y a pas odbc d'installer sur le serveur? (le programme est destinée a aller sur un autre serveur)

Reply

Marsh Posté le 27-05-2005 à 08:51:48    

help please!

Reply

Marsh Posté le 27-05-2005 à 17:06:23    

ODBC c'est juste une couche logiciel... Donc pas besoin de l'installer. Par contre il faut créer la clef ODBC (en gros les protocoles de connexions) sous le panneau de configuration de windows. Ce que je te conseille de faire c'est de creer la clef ODBC via le control panel de windows, et d'ensuite creer un installeur avec Inno Setup par ex qui copiera directement la clef que tu as creer dans la base de registre du serveur sur lequel tu installes ton application.
 
je l'ai deja fait ca marche plutot bien.


Message édité par iceteapeche le 27-05-2005 à 17:07:24
Reply

Marsh Posté le 27-05-2005 à 17:06:23   

Reply

Marsh Posté le 27-05-2005 à 17:25:06    

oki ca c'est fait! merci! ;)
 j'ai taper un ptit bout de code pour tenter de me connecter à une base mais il me met des erreurs et je comprend pas ( Je me suis grandement inspiré d'exemple vue sur le net...)
 

Code :
  1. #include <windows.h>
  2. #include <sql.h>
  3. #include <sqlext.h>
  4. #include <sqltypes.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8. // Les defines
  9. #define MAIN_LEN 80
  10. // Les types SQL
  11. SQLHENV henv;
  12. SQLHDBC hdbc;
  13. SQLHSTMT hstmt;
  14. void main ( )
  15. {
  16.  
  17. // Déclaration des variables SQL  
  18. SQLRETURN retcode;
  19. // Déclaration des variables Standart
  20. char Serveur[MAIN_LEN+1]="di-ca-01";
  21. char Login[MAIN_LEN+1]="netw";
  22. char Pwd[MAIN_LEN+1]="";
  23. FILE *fp;
  24. retcode=SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
  25.            
  26. if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
  27. retcode==SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,NULL);
  28.                
  29. if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
  30. retcode=SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
  31. else
  32. printf("Erreur sur l'instruction SQLAllocHandle !\n" );
  33.    
  34. // Vérification du Lien ODBC, Login Et Pwd         
  35. if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
  36. retcode=SQLConnect(hdbc, (SQLCHAR*)Serveur, SQL_NTS, (SQLCHAR*)Login, SQL_NTS, (SQLCHAR*)Pwd, SQL_NTS);
  37. else
  38. printf("Erreur sur l'instruction SQLSetEnvAttr !\n" );
  39.                    
  40. if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
  41. retcode=SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
  42. else
  43. printf("Erreur sur l'instruction SQLConnect !\n" );
  44. // Déconnexion  
  45. SQLFreeStmt(hstmt, SQL_DROP);
  46. SQLDisconnect(hdbc);
  47. SQLFreeConnect(hdbc);
  48.  
  49. printf("Fin de l'exportation\n" );
  50. // Pause  
  51. getchar ();
  52.    
  53. }


 
Je comprend a peu près le code mais il me dit qu'il y a ca comme erreur :  

Code :
  1. `SQL_ATTR_ODBC_VERSION' undeclared (first use this function)
  2. `SQL_OV_ODBC3' undeclared (first use this function)


 
Une idée d'ou sa vient??

Reply

Marsh Posté le 30-05-2005 à 17:02:03    

S'il vous plait..... à l'aide!!! j'ai beau essayé plein d'autres code il n'y a rien qui marche.
quelqu'un pourrait-il m'aider??

Reply

Marsh Posté le 31-05-2005 à 16:07:48    

salut c'est re moi!!
C'est fou j'ai l'impression de parler tout seul!!! :cry:  
 
J'ai remodifié mon code et la c'est un peu mieux... (enfin je pense!!!)
 

Code :
  1. #include <sql.h>
  2. #include <sqlext.h>
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <stdlib.h>
  6. #include <string>
  7. #include <sqltypes.h>
  8. int main()
  9. {
  10. SQLHENV henv;
  11. SQLHDBC hdbc;
  12.     SQLRETURN sqlReturn ;
  13.     SQLAllocEnv (&henv);                 /* allocate an environment handle */
  14.     SQLAllocConnect (henv, &hdbc);       /* allocate a connection handle   */
  15. //Connect to SQL Server.
  16. sqlReturn = SQLConnect( SQLHDBC  "bd_networker",
  17.                                     (SQLCHAR *)"di-ca-01",
  18.                                      SQL_NTS,
  19.                                     (SQLCHAR *)"netw",
  20.                                      SQL_NTS,
  21.                                     (SQLCHAR *)""
  22.                                      SQL_NTS);
  23. SQLDisconnect(hdbc);
  24. SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
  25. SQLFreeHandle(SQL_HANDLE_ENV, henv);
  26. system("pause" );
  27. return(0);
  28. }

 
Le problème s'est que maintenant mon compileur me dit qu'il y a une erreur à la ligne 20:  

Code :
  1. 23 d:\dev_c_~1\a_virer2.cpp parse error before string constant


 
Je vois pas d'où vient l'erreur... Si quelqu'un veut bien perdre un peu de son temps pour m'aider???

Reply

Marsh Posté le 10-06-2005 à 12:27:25    

allo???

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed