IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC] ADO connection


Sujet :

MFC

  1. #1
    Membre habitué
    Inscrit en
    Avril 2002
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 180
    Points : 157
    Points
    157
    Par défaut [MFC] ADO connection
    Salut
    Salut Je debute avec la programation Windows et les MFC.
    Holala ces pas evidant du tout, je lit boucoup dans les bouquins et sur Internet mais ya des fois ou l'information n'y est pas ou est incomplete je crois

    bon voila mon probleme.

    Pour que les objet ADO soit reconue dans la totalite de laplication il faut rajouter le code suivant dans la methode init instance conne suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    BOOL CMon_app::InitInstance()
    {
        if (!AfxOleInit());
        {
            AfxMessageBox(_T("Echeque a l'initialisation OLE"));
            returen(False);
         }
         AfxEnableControlContainer();
         ...
    puis editer le fichier atdafx.h comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #import"C:\Program Files\Common Files\System\ADO\MSADO15.DLL" \
    	rename_namespace("ADOCG") rename("EOF","EndOfFile")
    using namespace ADOCG;
    ensuite on devrait pouvoir tester la connection par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    void CAvance::OnBt1() 
    {
     
    	// TODO: Add your control notification handler code here
    	CComboBox *cmb1=(CComboBox*)GetDlgItem(IDC_COMBO1);
     
    	_ConnectionPtr cn;
    	_RecordsetPtr rs;
     
    	creation de la connection
    	cn.CreateInstance(__uuidof(Connection));
     
    	cn->ConnectionString="provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\\gestionaire\\database\\fleuriste2000.mdb";
    	cn->ConnectionTimeout=30;
    	cn->Open("","","",-1);
     
     
    	creation du recordset
    	rs.CreateInstance(__uuidof(Recordset));
    	rs->CursorLocation=adUseServer;
    	rs->CursorType=adOpenDynamic;
    	rs->LockType=adLockReadOnly;
    	rs->Open("select date from t_avance",cn.GetInterfacePtr(),adOpenDynamic,adLockReadOnly,-1);
     
    	rs->MoveFirst();
    	while(!rs->EndOfFile)
    	{
    		_variant_t valeur;
    		valeur=rs->GetCollect("date");
    		cmb1->AddString((char*)_bstr_t(valeur));
    		rs->MoveNext();
    	}
    	rs->Close();
     
     
    }
    et bien ca ne marche pas
    Ala compilation ces OK
    A l'editeur de lien ces OK
    A l'execution ca plante royallement le message d"ereur retourne est
    <<This Application ahs requested The runtime to terminate it in a unusual way>>
    Je ne comprend pas!?? si vous avez une idee ou avez deja resolu un probleme semblable dite le moi SVP.

    tous vos truquee et conseil sont apprecier

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    je te conseil pour aller bp plus vite d'utilise l'encapsulation des classes ADO fournie par Pierre (pdl).

    je pense que bp les ont utilisee avec de bons (tres bons) resultats.

    je peux te filer un coup de main pour les mettre en oeuvre.

    Pat

  3. #3
    Membre habitué
    Inscrit en
    Avril 2002
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 180
    Points : 157
    Points
    157
    Par défaut La ca va faire neophite
    L'idee d'utiliser l'encapsulation Ado de P.Delport me convien tout a fait et encore plus avec votre aide.

    Excusemoi de faire aussis debutant avec cette question
    Pour utiliser ces classe il faut inclure le fichier d'entete puis la brairie au projet.
    Pour le fichier d'entete j'ai fait <<add file to folders>> puis je l'ai inclue sous l'onglet Headers file je croie que la ca va.
    pour inclure la birairie <<Aucune espece d'idee>> ca doit etre dans

    Project->Settings...->???quelquepar???

    si vous pouviez m'aider un peut je vous en serait tres reconnaisant

    un Philippe V enthousiasme
    Merci

  4. #4
    pdl
    pdl est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 30
    Points : 33
    Points
    33
    Par défaut
    Deux manières sont possibles :

    Soit dans Project->Settings, puis l'onglet Link Object/Ligrary Module, tu ajoutes le fichier ADOLib.
    Soit tu ajoutes le fichier ADOLib.Lib comme tu ajouterais un autre fichier .h ou .cpp dans ton projet.

    Bon travail,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/09/2006, 16h22
  2. [MFC/ADO] Pb insertion d'enregistrement ?
    Par ddaime dans le forum MFC
    Réponses: 2
    Dernier message: 08/06/2006, 13h28
  3. [mfc][ado][access] Temps de chargement très très long
    Par julien.nasser dans le forum MFC
    Réponses: 3
    Dernier message: 12/05/2006, 15h57
  4. [MFC][ADO][ACCESS] temps de chargement très très long
    Par julien.nasser dans le forum Access
    Réponses: 2
    Dernier message: 12/05/2006, 15h34
  5. [MFC] ADO et operateur delete
    Par 0xYg3n3 dans le forum MFC
    Réponses: 9
    Dernier message: 26/03/2005, 14h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo