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

Delphi Discussion :

Manipulation des Dates avec SQL


Sujet :

Delphi

  1. #1
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 35
    Par défaut Manipulation des Dates avec SQL
    Salut tout le monde;

    tout d’abord je travail sous SGBD paradox + requête paramétrée
    ma table contient un champ "datedujour"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where(a.Datedujour=today)
    je voudrai sélectionner les champs d'une table qui correspond à la date du jour, alors
    je me suis appuyer sur la fonction mais hélas elle me donne rien plutôt j'ai un message
    'nom de champ today incorrect

  2. #2
    Membre éclairé

    Homme Profil pro
    ingénieur, retraité
    Inscrit en
    Février 2007
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur, retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 230
    Par défaut
    Bonjour,

    je pense que pour avoir les éléments de ToDay il faut utiliser la procedure DecodeDate.

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 627
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Today (que je ne connaissais pas) doit surtout être utilisé en tant que paramètre pas en tant que colonne comme l'indique votre SQL

    la query doit être écrite avec where a.Datedujour=:today et la valeur today doit être passée à la query avant l'ouverture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Query1.Active:=False;
    Query1.ParamByName('Today').asDateTime:=Today;
    Query1.Active:=True;
    a votre place d'ailleurs, j'en profiterais pour renommer la paramètre autrement pour éviter la confusion entre le nom du paramètre et celui de la fonction

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 934
    Billets dans le blog
    6
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    where ( a.Datedujour = today() )
    Et avec des parenthèses pour lui indiquer que c'est une fonction ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 627
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Et avec des parenthèses pour lui indiquer que c'est une fonction ?
    tu entendrais par là que Today serait une fonction de paradox ? (comme current_date, current_timestamp, "NOW" pour firebird par exemple ?)
    Perso je n'ai jamais vu.
    Effectivement, en utilisant le QBE du module de base de données de D7 TODAY est remplacé par la date au format mm/jj/aaaa quand on affiche le SQL, mais impossible à passer en SQL direct que ce soit entre guillemets (simples ou doubles) -> erreur type de champ ou avec les ()
    malheureusement le seul site que je connaisse sur Paradox www.thedbcommunity.com/interact/sql1.htm est indisponible au moment où j'écris

  6. #6
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 934
    Billets dans le blog
    6
    Par défaut
    Oui, en me référant à cet article : http://sqlpro.developpez.com/cours/sqlaz/fonctions/. Mais je n'en ai aucune confirmation ni expérience... Le seul test que j'ai conduit suite à ce post est sous SQLite, pour une vérification de syntaxe.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  7. #7
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 35
    Par défaut
    il a raison Sergio ça ne passe pas ni avec un guillemet ni en double et puis ça me donne un message
    comme fonctionnalité no supportée

  8. #8
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 934
    Billets dans le blog
    6
    Par défaut
    Il y a donc une syntaxe qui lui fait interpréter comme un nom de champ, et une comme une fonction. Après, aucune ne passe... Donc retour à la suggestion paramétrée de Serge, avec renommage pour éviter toute confusion.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  9. #9
    Membre expérimenté
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Décembre 2014
    Messages : 115
    Par défaut
    Salut,
    Tout d'abord, comme mentionné plus haut, il n'y a pas de fonction today() dans Paradox.
    Tu veux sélectionner des records d'après une date.
    Soit qry1 : tQuery

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    qry1.sql.add( 'select ... from matable where datj=:datj order by .... ');
    qry1.params[0].DataType := fdDate;  // pas indispensable; 
    qry1.params[0].value := date;          // date étant la fonction standard Delphi 
    qry1.open;
    où est le problème ?
    solilog

Discussions similaires

  1. Manipulation des dates avec la classe Calendar
    Par mesken dans le forum Langage
    Réponses: 14
    Dernier message: 18/02/2011, 19h23
  2. [XL-2010] Manipuler des dates avec Find
    Par utan88 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/02/2011, 09h48
  3. manipulation des dates en sql
    Par industrielle dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/08/2009, 12h29
  4. Manipulation des fichiers avec pl/sql
    Par Answerplease dans le forum PL/SQL
    Réponses: 1
    Dernier message: 10/07/2007, 11h53
  5. Manipuler des dates...
    Par Ti Jen-tsie dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2003, 11h46

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