Visual C++ .NET 2003 & BDD

Visual C++ .NET 2003 & BDD - C++ - Programmation

Marsh Posté le 09-05-2006 à 10:55:30    

Bonjour à tous!
 
Je souhaite développer une petite application en C++ pour la présenter le jour de l'examen (BTS info de gestion).
Cette appli consiste à gérer les réservations, les chambres et les clients d'un hotel.  :jap:  
 
Je souhaitais dans un premier tps la faire avec une interface graphique mais devant les contraintes de tps (j'ai encore deux autres appli à faire en deux semaines...) je préfère tabler sur la bonne vieille console noire... Bref j'ai créer un projet Win 32 (avec support des MFC). Ensuite j'ai ajouter une classe MFC ODBC Consumer que j'ai configuré grâce à l'appWizard.
 
Tout semble s'être déroulé correctement (j'ai deux nouveaux fichiers: nom_de_ma_table.cpp et nom_de_ma_table.h), mais je ne sais pas quoi faire maintenant. Comment ouvrir la connection à la base? comment effectuer une requête, récuperer les données, les utiliser?  :heink:  
 
J'ai passé toute la journée hier à faire des recherches et j'ai l'impression que personne n'utilise le C++ pour des accès BDD, je me trompe?  :lol:  
 
J'espère que vous m'aiderez un peu à avancer sur ce sujet, je désespère un peu là  :(

Reply

Marsh Posté le 09-05-2006 à 10:55:30   

Reply

Marsh Posté le 09-05-2006 à 11:09:10    

http://msdn.microsoft.com/library/ [...] amples.asp


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 09-05-2006 à 22:25:26    

Pouvez vous m'éclairer sur ces lignes de commandes svp? J'ai beau faire des recherches j'ai du mal à piger leur sens !
 

Code :
  1. inline void TESTHR(HRESULT x) {if FAILED(x) _com_issue_error(x);};


 
merci  ;)


Message édité par remedy le 09-05-2006 à 22:26:13
Reply

Marsh Posté le 10-05-2006 à 14:44:59    

Les HRESULT sont des codes retour de fonctions en général
Donc si le code de retour indique une erreur, on execute _com_issue_error(x).
J'ai pas trouver de doc sur cette fonction, mais je suppose qu'elle affiche une boite de dialogue avec un texte expliquant l'erreur.

Reply

Marsh Posté le 10-05-2006 à 16:42:09    

ok merci.
 
J'ai un autre souci. J'ouvre une connexion grace à une fonction connectionstringX() (récupérée sur un exemple MS). Mais lorsque je souhaite ouvrir un recordset j'ai le message d'erreur 80004005 qui apparait...
 
Ca fais plus de trois heures que je lutte avec ça!!! que faire????
 
voici le code pour l'ouverture du recordset:

Code :
  1. void MoveFirstX()
  2. {
  3.     HRESULT    hr = S_OK;
  4.     _RecordsetPtr    pRstAuthors  = NULL;
  5. _bstr_t strCnn("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\bdessai.mdb;User Id=admin;Password=;" );
  6.     _bstr_t strMessage("UPDATE tbl_essai SET nom_blabla = "
  7.             "'ahah' WHERE nom_blabla = 'self'" );
  8.     int intCommand = 0;
  9.     // Temporary string variable for type conversion for printing.
  10.     _bstr_t  bstrFName;
  11.     _bstr_t  bstrLName;
  12.     try
  13.     {
  14.         // Open recordset from Authors table.
  15.         TESTHR(pRstAuthors.CreateInstance(__uuidof(Recordset)));
  16.         pRstAuthors->CursorType = adOpenStatic;
  17.         // Use client cursor to enable AbsolutePosition property.
  18.         pRstAuthors->CursorLocation = adUseClient;
  19.  system("pause" );
  20.  pRstAuthors->Open("tbl_essai",strCnn,adOpenStatic,
  21.            adLockBatchOptimistic, adCmdTable);

Reply

Marsh Posté le 10-05-2006 à 16:43:10    

on voit pas super bien entre les balises de codes...
 
void MoveFirstX()  
{
    HRESULT    hr = S_OK;
    _RecordsetPtr    pRstAuthors  = NULL;
 _bstr_t strCnn("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\bdessai.mdb;User Id=admin;Password=;" );
    _bstr_t strMessage("UPDATE tbl_essai SET nom_blabla = "
            "'ahah' WHERE nom_blabla = 'self'" );
    int intCommand = 0;
 
    // Temporary string variable for type conversion for printing.
    _bstr_t  bstrFName;
    _bstr_t  bstrLName;
 
    try
    {
        // Open recordset from Authors table.
        TESTHR(pRstAuthors.CreateInstance(__uuidof(Recordset)));
        pRstAuthors->CursorType = adOpenStatic;
 
        // Use client cursor to enable AbsolutePosition property.
        pRstAuthors->CursorLocation = adUseClient;
  system("pause" );
  pRstAuthors->Open("tbl_essai",strCnn,adOpenStatic,  
           adLockBatchOptimistic, adCmdTable);

Reply

Marsh Posté le 10-05-2006 à 17:13:04    

Regarde la doc de la fonction qui genere l'erreur.

Reply

Sujets relatifs:

Leave a Replay

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