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

Forms Oracle Discussion :

incompatibilité sur les dates (forms6i)


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 83
    Par défaut incompatibilité sur les dates (forms6i)
    Bjr,
    Voilà, j'ai envie de faire une critère de recherche sur les dates d'une base 9i et là je m'y retrouve plus. Je ne retrouve pas les résultats souhaités même si je copie en dur les requètes que j'ai testé moi même dans toad. J'ai essayé toutes les possibilités sur les formats de la date et même en changeant les dates en to_char. Voiçi un extrait de code que j'ai envie de vous montrer :
    ....
    clause_where := ' (date_creation between ''' || to_char(:block.date_deb, 'DD/MM/YYYY') || ''' and ''' || to_char(:block.date_fin, 'DD/MM/YYYY') || ''')';
    ....
    remarque :
    dans regedit, NLS_DATE_FORMAT = 'DD/MM/YYYY'
    date type de : date_deb et date_fin est Date
    et évidemment, dans la base date_creation est une date.

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    clause_where := '(date_creation between to_date(''' ||
                   to_char(:block.date_deb, 'DD/MM/YYYY') || 
                   ''', ''DD/MM/YYYY'') and to_date(''' || 
                   to_char(:block.date_fin, 'DD/MM/YYYY') || 
                   ''', ''DD/MM/YYYY''))';
    Cette solution marche dans tous les cas.

    Si c'est pour faire un set_block_property (..., default_where, ...) tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clause_where := '(date_creation between :block.date_deb and :block.date_fin)';

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 83
    Par défaut
    J'ai essayé les deux solutions mais le problème n'est pas encore résolu. Est-ce que quelqu'un peut venir à mon secour.

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    pourrais-tu indiqué le résultat obtenu et le résultat souhaité STP ?

  5. #5
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    ainsi que l'erreur si tu en as une...
    sinon toutes la clause where (car l'erreur vient peut-être d'une parenthèse mal placée par exemple).

  6. #6
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 83
    Par défaut
    ok je vais vous donner les parties pertinantes du code :
    dans le trigger : PRE-QUERY du bloc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     DECLARE
        clause_where_DATE_DEMINIT VARCHAR(2000);
        clause_where_final VARCHAR(20000);  
    BEGIN
        clause_where_final := '';
        str_AND    := '';
    ....
    IF Name_In ('fhcoord_input.DATE_DEMINIT_DEB') IS NOT NULL 
          AND Name_In ('fhcoord_input.DATE_DEMINIT_FIN') IS NOT NULL
    THEN 
    clause_where_DATE_DEMINIT := '(date_demande_init between to_date(''' || to_char(:fhcoord_input.DATE_DEMINIT_DEB,'DD/MM/YYYY') || ''',''DD/MM/YYYY'' AND to_date(''' || to_char(:fhcoord_input.DATE_DEMINIT_FIN,'DD/MM/YYYY') || ''',''DD/MM/YYYY''))';
    ...
    IF clause_where_DATE_DEMINIT IS NOT NULL
    THEN
        clause_where_final := clause_where_final || str_AND || clause_where_DATE_DEMINIT;  
        str_AND := ' AND ';
    END IF;
    ....
    set_block_property('FHCOORD_POSSIBLES',DEFAULT_WHERE,clause_where_final);
     
    END;
    Aucune erreur!
    Exemple pour la plage de date j'entre : 20/01/2003 et 21/01/2003
    dans toad ces valeurs existent, en tout il y a 23 enregistrements.
    Mais quand je lance l'application avec ces critères il y en a 272.
    En premier lieu il affiche une quinzaine de réponse vraie mais après cette liste c'est la pagaille.
    exemple :
    20/01/2003
    20/01/2003
    20/01/2003
    20/01/2003
    ...
    12/06/1999
    01/05/2001
    ...

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

Discussions similaires

  1. Equivalent à TRUNC ou ROUND d'Oracle sur les Dates ?
    Par swirtel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/05/2005, 09h45
  2. operation sur les dates
    Par elendil dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/04/2005, 12h14
  3. [C#] Calcul sur les dates avec des DateTimePicker
    Par alizee971 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 02/04/2005, 17h14
  4. MS Access et TQuery (probleme sur les dates)
    Par Djob dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/06/2004, 14h57
  5. opérations sur les dates
    Par coucoucmoi dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2003, 11h45

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