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

Bases de données Delphi Discussion :

DateTimePicker avec sql


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut DateTimePicker avec sql
    Salut,

    Après avoir remplacer les combobox par des DateTimePicker, je recnontre des problèmes avec la base de donnée.
    Erreur : Invalid relational operator.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Abonnement.Query_Abo.sql.Clear;
         Abonnement.Query_Abo.sql.Add('Select Nom, Prenom, Section, Parcelle, Ilot, Rang, Numpol, Clepol, dateateabo, Tar,DateSite from Abo');
         Abonnement.Query_Abo.sql.Add('Where Dateabo between' + DateToStr(DateTimePicker2.Date)));
         Abonnement.Query_Abo.sql.Add('And ' + DateToStr(DateTimePicker3.Date)));
         Abonnement.Query_Abo.sql.Add('And expl = ' + QuotedStr(ExplEdit.text));
         Abonnement.Query_Abo.sql.Add('order by dateabo');
         Abonnement.Query_Abo.Open;

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Essaies en mettant la condition relative à la date entre parenthèses.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    il faut mettre année puis mois puis jours : comme ca :
    Abonnement.Query_Abo.sql.Add('And '
    + formatdatetime('yyyy-mm-dd',DateTimePicker3.Date));

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Je mettrai la date plutôt comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FormatDateTime('mm/dd/yyyy',DateTimePicker3.Date))
    Cordialement,
    Mathieu

  5. #5
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Passe par les paramètres ca regle beaucoup de problème avec les dates et pas besoin de connaitre sont format

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    With Abonnement.Query_Abo do
    begin
      sql.Clear;
      sql.Add('Select Nom, Prenom, Section, Parcelle, Ilot, Rang, Numpol, Clepol, dateateabo, Tar,DateSite from Abo');
      sql.Add('Where (Dateabo between :DDEBUT And :DFIN)');
      sql.Add('And expl = :EXPL');
      sql.Add('order by dateabo');
      paramcheck := true;
      parambyname('DDEBUT').Value := DateTimePicker2.Date;
      parambyname('DFIN').Value := DateTimePicker3.Date;
      parambyname('EXPL').value := ExplEdit.text;
      Open;
    end;
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  6. #6
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    Salut à tous,

    Merci pour vos interventions.
    Toutes les excuses pour le silence un peu longt independant de ma volonté.
    J'ai éssayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FormatDateTime('mm/dd/yyyy',DateTimePicker3.Date))
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    formatdatetime('yyyy-mm-dd',DateTimePicker3.Date));
    qui ne marche pas.
    Enfin j'au utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Abonnement.Query_Abo.sql.Clear;
         Abonnement.Query_Abo.sql.Add('Select Abobt_Nom, Abobt_Prenom, Abobt_Section, Abobt_Parcelle, Abobt_Ilot, Abobt_Rang, Abobt_Numpol#, Abobt_Clepol#, Abobt_Dateabo, Abobt_Tar, Abobt_DateSit from Gc.gc_Abonne');
         Abonnement.Query_Abo.sql.Add('Where (Abobt_Dateabo between :DDEBUT And :DFIN)');
         Abonnement.Query_Abo.sql.Add('And abobt_expl# = :EXPL');
         Abonnement.Query_Abo.sql.Add('order by abobt_dateabo');
         Abonnement.Query_Abo.ParamCheck := true;
         Abonnement.Query_Abo.parambyname('DDEBUT').Value := DateTimePicker2.Date;
         Abonnement.Query_Abo.parambyname('DFIN').Value := DateTimePicker3.Date;
         Abonnement.Query_Abo.parambyname('EXPL').value := ExplEdit.text;
         Abonnement.Query_Abo.Open;
    Voici ce que oracle ramène comme erreur : 'inconsistent datatypyes'.

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Abonnement.Query_Abo.sql.Add('And abobt_expl# = :EXPL');
    A mon avis c'est le # qu'il doit pas aimer
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  8. #8
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    Expl# le nom du champ.
    La preuve est quand on enlève le # devant Expl, Oracle signale 'nom de colonne non valide'.

  9. #9
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    Salut,

    Une alternative pourrait s'avérer efficace bien que moins portable (spécifique Oracle) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Abonnement.Query_Abo.sql.Add('Where Dateabo between to_date(' +
    QuotedStr(FormatDateTime(DateTimePicker2.Date, 'dd/mm/yyyy')) + ', ' +
    QuotedStr('dd/mm/yyyy') + ')';
    ...

  10. #10
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    C'est un peu plus fort que moi. Mais j'essaie de m'adapter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Abonnement.Query_Abo.sql.Add('Select Abobt_Nom, Abobt_Prenom, Abobt_Section, Abobt_Parcelle, Abobt_Ilot, Abobt_Rang, Abobt_Numpol#, Abobt_Clepol#, Abobt_Dateabo, Abobt_Tar, Abobt_DateSit from Gc.gc_Abonne');
         Abonnement.Query_Abo.sql.Add('Where abobt_expl# = ' + QuotedStr(ExplEdit.text));
         Abonnement.Query_Abo.sql.Add('And Abobt_Dateabo between to_date('+ QuotedStr(FormatDateTime('mm/dd/yyyy', DateTimePicker2.Date)));
         Abonnement.Query_Abo.sql.Add('And to_date('+ QuotedStr(FormatDateTime('dd/mm/yyyy', DateTimePicker3.Date)));
         Abonnement.Query_Abo.sql.Add('order by abobt_dateabo');
    L'erreur est : 'missing right parenthesis'.
    Avec un peu d'aide je vais y arriver.

  11. #11
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Le texte est pourtant simple, il te manque une parenthèse ) , vérifies ta requete
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  12. #12
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    ça devrait donner qqch comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Abonnement.Query_Abo.sql.Add('Where (Abobt_Dateabo between ');
    Abonnement.Query_Abo.sql.Add('to_date('+Quotedstr(formatdatetime('dd/mm/yyyy', now))+','+QuotedStr('dd/mm/yyyy')+')');
    Abonnement.Query_Abo.sql.Add(' and ');
    Abonnement.Query_Abo.sql.Add('to_date('+Quotedstr(formatdatetime('dd/mm/yyyy', now))+','+QuotedStr('dd/mm/yyyy')+')');
    Abonnement.Query_Abo.sql.Add(')');
    Abonnement.Query_Abo.sql.Add('And abobt_expl# = '+...
    en remplaçant now par tes datetimepicker.date

  13. #13
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    Merci de m'avoir emmené à l'école. C'est très instructif.
    Merci encore à vous tous et à très bientôt.

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

Discussions similaires

  1. Gérer les queue avec sql server ?
    Par devdev dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 17/06/2004, 17h38
  2. listage de triggers/sequences avec sql plus
    Par stross dans le forum Oracle
    Réponses: 52
    Dernier message: 20/04/2004, 15h41
  3. [SGBD] Pour moyenne base avec SQL ?
    Par PyRoFlo dans le forum Bases de données
    Réponses: 10
    Dernier message: 13/03/2004, 18h54
  4. Delete on cascade avec SQL server
    Par fadoua dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/01/2004, 11h02
  5. Déployer une appli avec SQL SERVER
    Par tiboleo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 15/10/2003, 14h29

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