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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 395
    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 395
    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 395
    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 395
    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() ...

    @+

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