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 :

requete sql sur un champ date


Sujet :

C++Builder

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut requete sql sur un champ date
    Bonsoir.

    Encore une petite question

    Voila j'ai un ComboBox ou je selectionne le mois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    case 1 : // Choix Janvier
    mois = "janvier";
    break;
     
    case 2 : // Choix Février
    mois ="fevrier";
    break;
     
    //etc...
    et un autre pour les années....

    Ensuite j'ai un bouton dans lequel je fais une requete sur mon champ date.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQLQuery1->Active=false;
    SQLQuery1->SQL->Clear();
    SQLQuery1->SQL->Add("SELECT * FROM `types` where `Date` LIKE '"+lemoischoisi et aussi l'année+"' ");
    SQLQuery1->Open();//
    mon champ date dans la table est ecrit sous cette valeur : 4/05/2007

    j'aimerais qu'il m'affiche que ma selection de mon combobox1 et 2 mais je vis pas trop comment faire....

    Merci de votre aide

  2. #2
    Membre chevronné
    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
    Points : 2 189
    Points
    2 189
    Par défaut
    Juste comme ça, ce ne serais pas plus facile pour les mois d'utiliser un tableau au lieu d'un switch/case:

    AnsiString mois[] = {"janvier", "février", "mars", "avril" ... };

    et tu y accèdes avec

    mois[1]
    ; // retourne janvier
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    peut etre plus facile mais l'estetique me plait pas et puis ca ne change pas le probleme de comment selectionner ma date dans ma table ?

    ou alors j'ai rien compris

  4. #4
    Membre chevronné
    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
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par bullrot Voir le message
    peut etre plus facile mais l'estetique me plait pas et puis ca ne change pas le probleme de comment selectionner ma date dans ma table ?

    ou alors j'ai rien compris
    Effectivement, cela ne résout pas ton problème. Mais si tu prends ma méthode sa va te prendre un ligne de code au lieu de 50. En plus, tu sauves un paquet d'instruction à ton CPU, car il n'y a pu de comparaison (cmp en assembleur). Mais si l'esthétique te plait ...
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    Citation Envoyé par Crayon Voir le message
    Effectivement, cela ne résout pas ton problème. Mais si tu prends ma méthode sa va te prendre un ligne de code au lieu de 50. En plus, tu sauves un paquet d'instruction à ton CPU, car il n'y a pu de comparaison (cmp en assembleur). Mais si l'esthétique te plait ...
    oui entierement d'accord avec toi mais bon je suis sur un petit projet donc a vrai dire l'utilisation cpu n'est pas ma priorité

  6. #6
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Une petite erreur de Crayon, mois[1] retourne février et non pas janvier

    Citation Envoyé par Crayon Voir le message
    mois[1]; // retourne janvier
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  7. #7
    Membre chevronné
    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
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par pottiez Voir le message
    Une petite erreur de Crayon, mois[1] retourne février et non pas janvier
    J'oublie souvent que les programmeurs doivent commencer à compter à partir de 0 et non à partir 1! Heureusement il existe les débogeur pour se rendre compte des erreurs.
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  8. #8
    Membre chevronné
    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
    Points : 2 189
    Points
    2 189
    Par défaut
    bullrot, si je comprends bien ta question tu cherches à extraire le jour, le mois et l'année d'une String comme "4/05/2007"?

    Voici le principe (pas en C++):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       P := Pos('/', DateStr) ;
       Str1 := Copy(DateStr, 1,  P-1) ; Delete(DateStr, 1, P) ;
       P := Pos('/', DateStr) ;
       Str2 := Copy(DateStr, 1,  P-1) ; Delete(DateStr, 1, P) ;
       Str3 := DateStr ;
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  9. #9
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut
    Salut !


    Proposition :
    Pourquoi ne pas utiliser TDateTimePicker et formater la date choisie selon tes besoins pour SQL ?


    A+
    Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

    (Mark TWAIN)

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    j'ai trouver une methode la voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT RefProduit,Marque,Model,COUNT(Quantite) AS qte FROM historique WHERE Genres LIKE '%"+genre+"%' AND Type LIKE '%"+type+"%' AND DATE_FORMAT((STR_TO_DATE(DateCommande, '%d/%m/%Y')),'%M %Y') LIKE '%"+mois+"%' AND DATE_FORMAT((STR_TO_DATE(DateCommande, '%d/%m/%Y')),'%M %Y') LIKE '%"+annee+"%' GROUP BY RefProduit ORDER BY qte DESC
    au moins je garde que une commande sql

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

Discussions similaires

  1. Requete sql sur un champ date
    Par scholes dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 14/05/2013, 14h37
  2. Requete sql sur un champ date
    Par scholes dans le forum JDBC
    Réponses: 9
    Dernier message: 14/05/2013, 11h35
  3. requette sql sur un champ date en fonction du mois
    Par mims1664 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/03/2007, 11h40
  4. Probleme de requete SQL avec un champs date
    Par ju360modena dans le forum ASP
    Réponses: 5
    Dernier message: 16/06/2005, 11h18
  5. Requete SQL sur table dbase et date du jour
    Par Jean-François PETIT dans le forum Bases de données
    Réponses: 5
    Dernier message: 29/03/2005, 09h31

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