problème avec #include <afxdb.h>

bry555

Nouveau membre
J'essaye d'accèder à une base open office avec dev-c++ (en c++). Je l'ai fait une fois mais il y a un bou de temps et c'était pas avec dev-c++.
Le problème c'est qu'il ne reconnait pas le :
[cpp]#incude <afxdb.h>[/cpp]
Es que quelqu'un sait pour quoi ?
Merci d'avance.
 

zeb

Modérateur
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$ ?
 

bry555

Nouveau membre
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 :
[cpp]// Connexion et execution de requete sur un base de donnees Microsoft Access
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>

#pragma comment(lib, "odbc32.lib")

int main(int argc, char *argv[])
{
HENV hEnv;
HDBC hDbc;
RETCODE rc;

int iOut;
char strOut[256];
char szDSN[256] = "driver={Microsoft Access Driver (*.mdb)};dbq=[test.mdb];";
char szSql[256] = "SELECT * FROM One";

int ret1;
int ret2;
int ret3;
int ID;
char Name[128];
char Login[128];

// 1 - Connexion a la BDD Access
rc = SQLAllocEnv(&hEnv);
rc = SQLAllocConnect(hEnv, &hDbc);
rc = SQLDriverConnect(hDbc, NULL, (unsigned char*)szDSN, SQL_NTS, (unsigned char*)strOut, 255, (SQLSMALLINT*)&iOut, SQL_DRIVER_NOPROMPT);

// 2 - Preparation de la requete
HSTMT hStmt;
rc = SQLAllocStmt(hDbc,&hStmt);
rc = SQLPrepare(hStmt,(unsigned char*)szSql, SQL_NTS);

// 3 - Execution de la requete (Apres avoir binder les champs de resultats)
//rc = SQLBindCol(hStmt, tab_column, tr_type, tr_value, tr_len, len_or_ind);
rc = SQLBindCol(hStmt, 1, SQL_C_ULONG, &ID, 4, (SQLINTEGER*)&ret1);
rc = SQLBindCol(hStmt, 2, SQL_C_CHAR, Name, 128, (SQLINTEGER*)&ret2);
rc = SQLBindCol(hStmt, 3, SQL_C_CHAR, Login, 128, (SQLINTEGER*)&ret3);
rc = SQLExecute(hStmt);

// IMPORTANT : Pour les requetes du style DROP/CREATE/UPDATE...
// Vous pouvez utiliser : rc = SQLExecDirectA(hStmt,(unsigned char*)szSql,SQL_NTS);

// 4 - Boucle pour afficher les resultats
while(!(SQLFetch(hStmt) & 0xFFFE))
{
printf("{%i}{%s}{%s}\n", ID, Name, Login);
}

// 5 - Liberations et fermeture de la connection a la BDD
rc = SQLFreeStmt(hStmt, SQL_DROP);
rc = SQLDisconnect(hDbc);
rc = SQLFreeEnv(hEnv);

getch();

return 0;
}
[/cpp]
ç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 ?
 

bry555

Nouveau membre
J'ai laissé tombé dev-c++ et j'ai télécharger visual c++. Mais afxdb n'est pas reconnu.
Voici mon code :
[cpp]#include <afxdb.h>
#include <iostream>
using namespace std;
void main (void)
{
CDatabase base;
CRecordset emp (&base);
CString sqlnum, sqlnom;
base.OpenEx(_T("DSN=BDT;"),CDatabase::openReadOnly);
if(!base.IsOpen())
{
cout<<"problème";
}
else
{
emp.Open(CRecordset:: snapshot, "select num_emp, nom_emp from employé");
emp.MoveFirst();
while(!emp.IsEOF())
{
emp.GetFieldValue("nom_emp", sqlnom);
cout<<sqlnom;
emp.MoveNext();
}
emp.Close();
base.Close();
}
}
[/cpp]
L'erreur affiché est :
.\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!
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 846
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut