Se connecter avec
S'enregistrer | Connectez-vous

problème avec #include <afxdb.h>

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte
Expert Programmation

incude ? spa comme ça que ça s'écrit :o 

Sais-tu ce qu'est AFX ?
C'est Application Framework eXtensions, le premier nom de MFC, Microsoft Foundation Classes. Pourquoi diable voudrais-tu que DEV-C++ connaisse les classes de M$ ?

Désolé, je suis entrain de reprendre des codes que j'utilisais avant. Mais je fait comment alors pour me connecter à une base openoffice avec dev-C++ ?
J'ai trouvé ce bou de code pour ce connecter à une base Access, mais je sais pas trop comment le modifier :
  1. // Connexion et execution de requete sur un base de donnees Microsoft Access
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <windows.h>
  5. #include <sql.h>
  6. #include <sqlext.h>
  7.  
  8. #pragma comment(lib, "odbc32.lib")
  9.  
  10. int main(int argc, char *argv[])
  11. {
  12. HENV hEnv;
  13. HDBC hDbc;
  14. RETCODE rc;
  15.  
  16. int iOut;
  17. char strOut[256];
  18. char szDSN[256] = "driver={Microsoft Access Driver (*.mdb)};dbq=[test.mdb];";
  19. char szSql[256] = "SELECT * FROM One";
  20.  
  21. int ret1;
  22. int ret2;
  23. int ret3;
  24. int ID;
  25. char Name[128];
  26. char Login[128];
  27.  
  28. // 1 - Connexion a la BDD Access
  29. rc = SQLAllocEnv(&hEnv);
  30. rc = SQLAllocConnect(hEnv, &hDbc);
  31. rc = SQLDriverConnect(hDbc, NULL, (unsigned char*)szDSN, SQL_NTS, (unsigned char*)strOut, 255, (SQLSMALLINT*)&iOut, SQL_DRIVER_NOPROMPT);
  32.  
  33. // 2 - Preparation de la requete
  34. HSTMT hStmt;
  35. rc = SQLAllocStmt(hDbc,&hStmt);
  36. rc = SQLPrepare(hStmt,(unsigned char*)szSql, SQL_NTS);
  37.  
  38. // 3 - Execution de la requete (Apres avoir binder les champs de resultats)
  39. //rc = SQLBindCol(hStmt, tab_column, tr_type, tr_value, tr_len, len_or_ind);
  40. rc = SQLBindCol(hStmt, 1, SQL_C_ULONG, &ID, 4, (SQLINTEGER*)&ret1);
  41. rc = SQLBindCol(hStmt, 2, SQL_C_CHAR, Name, 128, (SQLINTEGER*)&ret2);
  42. rc = SQLBindCol(hStmt, 3, SQL_C_CHAR, Login, 128, (SQLINTEGER*)&ret3);
  43. rc = SQLExecute(hStmt);
  44.  
  45. // IMPORTANT : Pour les requetes du style DROP/CREATE/UPDATE...
  46. // Vous pouvez utiliser : rc = SQLExecDirectA(hStmt,(unsigned char*)szSql,SQL_NTS);
  47.  
  48. // 4 - Boucle pour afficher les resultats
  49. while(!(SQLFetch(hStmt) & 0xFFFE))
  50. {
  51. printf("{%i}{%s}{%s}\n", ID, Name, Login);
  52. }
  53.  
  54. // 5 - Liberations et fermeture de la connection a la BDD
  55. rc = SQLFreeStmt(hStmt, SQL_DROP);
  56. rc = SQLDisconnect(hDbc);
  57. rc = SQLFreeEnv(hEnv);
  58.  
  59. getch();
  60.  
  61. return 0;
  62. }

ça me fait une erreur pour le getch() à la fin mais si je le met en commentaire y'en à pas. Parcontre ça ne fait rien.
Ce code me semble bien compliqué, dans mon souvenir c'était pas aussi complexe.
Quelqu'un peut m'aider ?

J'ai laissé tombé dev-c++ et j'ai télécharger visual c++. Mais afxdb n'est pas reconnu.
Voici mon code :
  1. #include <afxdb.h>
  2. #include <iostream>
  3. using namespace std;
  4. void main (void)
  5. {
  6. CDatabase base;
  7. CRecordset emp (&base);
  8. CString sqlnum, sqlnom;
  9. base.OpenEx(_T("DSN=BDT;"),CDatabase::openReadOnly);
  10. if(!base.IsOpen())
  11. {
  12. cout<<"problème";
  13. }
  14. else
  15. {
  16. emp.Open(CRecordset:: snapshot, "select num_emp, nom_emp from employé");
  17. emp.MoveFirst();
  18. while(!emp.IsEOF())
  19. {
  20. emp.GetFieldValue("nom_emp", sqlnom);
  21. cout<<sqlnom;
  22. emp.MoveNext();
  23. }
  24. emp.Close();
  25. base.Close();
  26. }
  27. }

L'erreur affiché est :
Citation :
.\essai.cpp(1) : fatal error C1083: Impossible d'ouvrir le fichier include : 'afxdb.h' : No such file or directory

Je pense qu'il me manque quelque chose. Y'a une manipulation à faire? Quelque chose à télécharger?
Aidez moi svp!
Lassé par la pub ? Créez un compte