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 :

problemme d'execution de requ�te sql


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    6
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 6
    Par d�faut problemme d'execution de requ�te sql
    salut...je veux ex�cuter une requ�te sql (j'utilise mfc c++)... mais le probl�me c'est que mon code est apparemment erron� et il n'y a pas d'erreur qui s'affiche pour que je puisse connaitre exactement le probl�me ...en tout les cas je vous envois une partie de mon code alors si c'est possible de me donner un petit coup de pouce �a serait gentil
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    CDatabase mydbe;
     
    if( !mydbe.OpenEx( _T( "ODBC;DSN=pointage;UID=Scott;PWD=Tiger" ), 
    CDatabase::openReadOnly))
    {
        AfxMessageBox("Impossible d'ouvrir la base de donnée en lecture seule");
        return;
     }
    else
    {    
            CString sqll1;
        CString pointagemat;
        sqll1="select pointagemat from pointage where cin='";
        sqll1+=m_CINL;
        sqll1+="'";
     
        re->Open(CRecordset::snapshot, sqll1);
     
            if(re->IsEOF())
            {        
                existe=FALSE;
            }
            else
            {    
                while(!re->IsEOF())
                {
                    re->GetFieldValue("pointagemat", pointagemat);
                    CString pmd=pointagemat.Mid(0,10);
                    if(pmd=td)  //td est la date du systéme
                    existe=TRUE;
                }
     
            re->Close();
            }
                    if(existe=TRUE)
            AfxMessageBox("le pointage a déja eu lieu");
            else
            {
                CString sqll;
                sqll="insert into pointage values('";
                sqll+=m_CINL;
                sqll+="','";
                sqll+=ctime(&t);
                sqll+="','0')";    
                mydbe.ExecuteSQL(sqll);
            }
    }
    Merci de faire attention a la balise de code, et � l'orthographe! .Farscape

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut

    Tu dois bien avoir un sympt�me quelquonque pour dire que �a ne marche pas, non?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    � mon avis, il doit d�j� y avoir une erreur ici:
    Tu as sans doute oubli� un =. Tu peux le rajouter, ou �crire tout simplement if(existe)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    6
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 6
    Par d�faut
    merci enfaite de mavoir rependu...le probleme c'est que synthaxiqument c'est correct mais a l'execution une fen�tre de d�boguaje windows est afficher...elle saffiche juste au niveau de l'ouverture du recordset...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    6
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 6
    Par d�faut
    oui enfaite j'ai oublier un= ...bon je vien de l'ajouter mais c�tt� pas sa le problemme...

  6. #6
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    l� aussi:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    if(pmd=td) //td est la date du systéme
    existe=TRUE;
    et si ton recordset n'est pas vide, qui met "existe=FALSE" ???

    @+

  7. #7
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    � la place de :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if(re->IsEOF())
    { 
    existe=FALSE;
    }
    else
    { 
    while(!re->IsEOF())
    {
    re->GetFieldValue("pointagemat", pointagemat);
    CString pmd=pointagemat.Mid(0,10);
    if(pmd=td) //td est la date du systéme
    existe=TRUE;
    }
    fait plutot �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    existe=FALSE;
    while (!re->IsEOF())
    {
      re->GetFieldValue(_T("pointagemat"),pointagemat);
      if (_tcsicmp(pointagemat,td,10)==0)
        existe=TRUE;
      re->MoveNext();    // ne pas oublier !!!
    }
    c'est plus simple ? ne pas oublier le MoveNext() ...

    @+

  8. #8
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    6
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 6
    Par d�faut
    bon merci a vous tous pour vos reponse...enfait j'ai fait quelques am�liorations dans mon code et la au moin il me sort une erreur toute fois compr�ensible...
    l'erreur est "curseurs odbc satitques requise pour la prise en charge des instantan�s"...plz aider moi a r�soudre ce probl�me,promi je vous d�ranjerer plu.

  9. #9
    Expert confirm�
    Avatar de Mat.M
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 539
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 539
    Par d�faut
    >>CDatabase::openReadOnly
    la Bdd est ouverte en lecture seule alors qu'il y a un INSERT VALUES qque part
    >>D�bogue pas -� pas avec des points d'arr�t c'est le seul moyen.
    >> ne pas prendre CDatabase de DAO mais plutot avec ADO et COM.
    J'ai gal�r� avec CDatabase...

Discussions similaires

  1. [2008] T�che d'execution de requ�tes SQL
    Par Invit� dans le forum SSIS
    R�ponses: 2
    Dernier message: 05/08/2014, 07h04
  2. commande shell pour executer une requ�te sql
    Par young077 dans le forum Administration syst�me
    R�ponses: 4
    Dernier message: 10/07/2009, 02h19
  3. Executer une requ�te SQL
    Par Edna24 dans le forum D�veloppement de jobs
    R�ponses: 4
    Dernier message: 20/05/2009, 11h02
  4. Executer une requ�te SQL en VB6
    Par thetom dans le forum VB 6 et ant�rieur
    R�ponses: 2
    Dernier message: 25/03/2009, 12h44
  5. [MySQL] Afficher le temps mis pour executer une requ�te SQL
    Par micatmidog dans le forum PHP & Base de donn�es
    R�ponses: 6
    Dernier message: 28/09/2005, 11h23

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