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

C++Builder Discussion :

SELECT FROM WHERE


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Par défaut SELECT FROM WHERE
    Bonjour,
    voici un problème de requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int heure_deb = 0 ;
    heure_deb = CB_heure_deb->Text.ToInt() ;
    
    Query1->Close();
    Query1->SQL->Clear() ;
    Query1->SQL->Add("SELECT heure_deb FROM Dates_tbl ");
    Query1->SQL->Add("WHERE heure_deb =" + heure_deb);
    Query1->Open();
    En rouge est là d'où provient mon erreur.
    Ma base de donnée est sous Access 2007.
    Le champ de la base "heure_deb" est du type numérique.
    Ma variable heure_deb est du type Int.
    Mon message d'erreur : "Erreur de syntaxe dans la clause FROM"

    Honnêtement j'ai déjà effectué des vingtaines de requêtes et c'est la première fois que ça me fait ça :/

    Une idée ?

    Merci.

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    J'ai jamais utilisé de BD avec ce composant, par contre je pourrais te conseiller de combiner ces lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Query1->SQL->Add("SELECT heure_deb FROM Dates_tbl ");
    Query1->SQL->Add("WHERE heure_deb =" + heure_deb);
    pour faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query1->SQL->Add("SELECT heure_deb FROM Dates_tbl WHERE heure_deb =" + heure_deb);

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Par défaut
    Avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query1->SQL->Add("SELECT heure_deb FROM Dates_tbl WHERE heure_deb ="+heure_deb);
    Le message d'erreur est : "Instruction SQL non valide"...

    Alors que dans le constructeur SQL de Query1 si j'entre la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT heure_deb FROM Dates_tbl WHERE heure_deb = 10
    J'obtiens le bon résultat. What's the problem ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    Salut

    +heure_deb.c_str()



    Non ?

  5. #5
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    J'ai juste une petite question.

    Ici tu initialises à zéro sans raison, car la ligne après tu mets une valeur.
    Ici tu transforme une string en entier. Pour le retransformer en string dans ta requête par la suite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    heure_deb = CB_heure_deb->Text.ToInt() ;
    J'imagine que ce serait plus facile de faire ceci (en tout cas pour le CPU)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query1->SQL->Add("SELECT heure_deb FROM Dates_tbl WHERE heure_deb ="+CB_heure_deb->Text);
    Habituellement j'utilise l'API de MySQL, c'est pourquoi je te donne des réponses non précise

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Par défaut
    C'est bon j'ai réussi, le problème c'est que heure_deb doit être un string pour la requête mais après dans mon programme je dois l'incrémenter.

    Voilà ce que cela donne au final :

    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
    String heure_deb = "";
    heure_deb = CB_heure_deb->Text;
    
    Query1->Close();
    Query1->SQL->Clear() ;
    Query1->SQL->Add("SELECT heure_deb, date_calendrier FROM Dates_tbl ");
    Query1->SQL->Add("WHERE date_calendrier='"+date+"'");
    Query1->SQL->Add(" AND heure_deb ="+heure_deb);
    Query1->Open();
    
    heure_deb_test = Query1->FieldByName("heure_deb")->AsInteger ;
    
    if(date_test != date && heure_deb_test != heure_deb){
    Query1->Close();
    Query1->SQL->Clear() ;
    Query1->SQL->Add("INSERT INTO dates_tbl(id_client,jour,intervention,heure_deb,date_calendrier,commentaire) ");				Query1->SQL->Add("VALUES('"+id_client+"','"+jour+"','"+intervention+"','"+heure_deb+"','"+date+"','"+autre+"')");
    Query1->ExecSQL();
    
    heure_deb = heure_deb.ToInt()+1;
    }else{
    int rep= MessageBox(Handle,"Ce créneau horaire est déjà utilisé, ajouté : "+i,
    				"Avertissement",MB_ICONEXCLAMATION ) ;
    }
    Maintenant j'aimerai afficher la valeur de "i" qui est un entier venant de la boucle For.

    bizarrement il ne me l'affiche pas..

    En tout cas merci pour l'aide précédente.

Discussions similaires

  1. [COUNT] select ... from ... where count !
    Par tmcgrady dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/11/2007, 17h29
  2. select, from, where
    Par poudy dans le forum Requêtes
    Réponses: 12
    Dernier message: 08/09/2007, 13h12
  3. probleme avec SELECT..FROM..WHERE
    Par VBBBA dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 08/09/2006, 15h58
  4. Pb de syntaxe sql : Sélection SELECT FROM WHERE vide
    Par oceanediana dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 31/07/2006, 15h54
  5. [hibernate][spring]requete select from where IN
    Par whilecoyote dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/04/2006, 09h06

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