Salut
Je débute en C++ mais en BTS j'ai travaillé sur du C#, et j'avais fait une bibliothèque de classe avec plein de fonctions sur les bases de données, manipulation de fichiers, de chaines,etc.
J'essaye de l'adapter pour qu'elle passe en C++, pour l'instant je m'interesse à celle sur la base de données, mais je rencontre beaucoup d'erreurs.
J'utilise un Pilote OleDb car normalement il passe en C++ et en C#.
Voici le code de la classe BasedeDonnees :
#include
"string"using
namespace System;using
namespace System::Collections;using
namespace std;using
namespace System::Data;using
namespace System::Data::OleDb;namespace
Utilitaires {publicrefclass BasedeDonnees{
public: BasedeDonnees(
void); //Les Bases De Données // "Crée Connexion Access " OleDbConnection Connection(std::string Bd)
{
//On tente d'accèder à la base de données//Chaîne de Connexion à la Basestd::string driver =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";std::string extension =
".mdb";std::string chainedeconnexion =
"@"+driver+"Bd"+extension;//Preparation de la Connexion à la Base de DonnéesOleDbConnection ObjetConnection =
gcnew OleDbConnection(); ObjetConnection =
gcnew OleDbConnection(chainedeconnexion);//Ouverture de la Connection avec Access sur la Base de DonnéesObjetConnection.Open();
return ObjetConnection;}
public :// "Execute Requete"OleDbDataReader Requete(std::string requete,OleDbConnection ObjetConnection)
{
OleDbDataReader myReader=
""; //lecteur de Données//Execution d'une Requete SQLOleDbCommand ObjetCommand =
gcnew OleDbCommand(requete);ObjetCommand.Connection = ObjetConnection;
myReader=ObjetCommand.ExecuteReader();
return myReader; }
// "Fermer La Connection"void FermerConnection(OleDbConnection ObjetConnection){
ObjetConnection->Close();
}
// "Traite les Requetes de plusieurs resultats dans un seul champ"ArrayList PlusResultOneColString(OleDbDataReader lect)
{
ArrayList ^ Resultat =
gcnew ArrayList ();int i;if(lect.HasRows){
i=0;
while (lect.Read()){
Resulta.Add(lect.GetValue(i)+
"");i=i+1;
}
}
return Resultat;}
// "Traite les Requetes contenant un seul résultat string"char OneResultOneColString(OleDbDataReader lect){
std::string ligne=
"";if(lect.Equals("")){
while (lect.Read()){
ligne= lect.GetString(0);
}
}
return ligne;}
// "Traite les Requetes contenant un seul résultat entier"int OneResultOneColEntier(OleDbDataReader lect){
int ligne= 0;if(lect.Equals("")){
while (lect.Read()){
ligne = lect.GetInt32(0);
}
}
return ligne;}
};
}
Quelqu'un pourrait-il me dire d'après lui ce qui cloche dans le code ?
Merci d'Avance
Maiku