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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé 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
    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 confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Essaies en mettant la condition relative à la date entre parenthèses.

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    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 confirmé
    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
    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 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    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 236
    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 éclairé 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
    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
    Membre chevronné
    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
    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') + ')';
    ...

  8. #8
    Membre éclairé 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
    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.

  9. #9
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    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 236
    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

  10. #10
    Membre chevronné
    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
    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

  11. #11
    Membre éclairé 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
    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