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 :

prendre en charge les données de DateTimePicker dans une requete sql


Sujet :

C++Builder

  1. #1
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Points : 93
    Points
    93
    Par défaut prendre en charge les données de DateTimePicker dans une requete sql
    Bonjour,

    pour afficher que les enregistrements d'une table qui existe entre 2 date j'ai utilisée un TQuery
    le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Query1->Close();
     
      AnsiString a;
     
      a="select* from Table1  where  Date >= Date1 AND Date< =Date2  " ;
     
    Query1->SQL->Clear();
    Query1->SQL->Add(a);
    Query1->ExecSQL();
    Query1->Open();
    je veut donner a l'utilisateur la possibilité de choisir les deux date (date1 et date2) alors j'ai posé 2 DateTimePicker sur la forme,

    est ce que c'est possible d'ajouter les données de DateTimePicker dans le code.
    merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Essai de cette façon (ça fonctionne chez moi avec une base oracle):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Ansistring d1 = FormatDateTime( "DD/MM/YYYY", DateTimePicker1->Date ) ;
    Ansistring d2 = FormatDateTime( "DD/MM/YYYY", DateTimePicker2->Date );
    Query1->Active = false ;
    Query1->SQL->Clear() ;
    Query1->SQL->Add( "SELECT c1, c2, c3" ) ;
    Query1->SQL->Add( "FROM NomTable" ) ;
    Query1->SQL->Add( "WHERE nomChampDate > " + QuotedStr(d1) ) ;
    Query1->SQL->Add( "WHERE nomChampDate < " + QuotedStr(d2) ) ;
    Query1->Active = true;

  3. #3
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour
    dans ces conditions il est préférables d'utiliser des paramètres
    par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     Query1->Params->Items[0]->AsDate=DateStart->Date;
       Query1->Params->Items[1]->AsDate=DateEnd->Date;
       Query1->SQL->Clear();
       Query1->SQL->Add("Select * from Events where Event_Date BETWEEN :DateBas AND  :DateHaut");
       Query1->Open();
    j'utilise 2 paramètres DateBas et DateHaut que j'initialise avant d'effectuer ma requête.

    cordialement

  4. #4
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Points : 93
    Points
    93
    Par défaut
    Bonjour, merci a vous deux de me répondre
    dans mon projet j'utilise BDD ACCESS, j'ai rencontrée dans le code de Sat83 erreur de syntaxe (Opérateur absent) dans l'expression.
    j'ai essayée même le code de DimSoftware "Indice de liste hors limites (0)"
    merci d'avance pour votre aide

  5. #5
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Points : 93
    Points
    93
    Par défaut
    Bonjour
    Sayé j'ai résolue le problème avec ce code,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    AnsiString a=FormatDateTime( "DD/MM/YYYY", DateTimePicker1->Date );
    AnsiString b=FormatDateTime( "DD/MM/YYYY", DateTimePicker2->Date );
     
    String Filtre = "Date <= " +QuotedStr(b)+" AND "+"Date >= " +QuotedStr(a) ;
     
     
    Query1->Filter = Filtre; // Mise en place du filtre
    Query1->Filtered = true; // Activation du filtre
     
    DBGrid1->DataSource->DataSet->Close();
    DBGrid1->DataSource->DataSet->Open();
    merci

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

Discussions similaires

  1. [AC-2007] enregistrer les données sur état dans une table
    Par ouahab dans le forum Access
    Réponses: 1
    Dernier message: 14/05/2012, 15h12
  2. Récupérer les données de SAGE dans une page PHP
    Par yassineos19 dans le forum SAGE
    Réponses: 6
    Dernier message: 07/08/2011, 00h56
  3. [AC-2007] Etat - Afficher les données horizontalement et dans une forme
    Par macgyver44 dans le forum IHM
    Réponses: 2
    Dernier message: 01/08/2011, 14h41
  4. [XL-2003] Enregistrer les données des textbox dans une feuille excel
    Par monichou86 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 06/01/2010, 15h24
  5. [OpenOffice][Base de données] Récupérer les données aprés sélection dans une combobox
    Par frack dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 06/02/2009, 09h27

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