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

Coldfusion Discussion :

Probl�me de date avec Coldfusion sur une base Oracle


Sujet :

Coldfusion

  1. #1
    Membre averti
    Inscrit en
    F�vrier 2009
    Messages
    33
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2009
    Messages : 33
    Par d�faut Probl�me de date avec Coldfusion sur une base Oracle
    salut � tous !
    J'ais un probl�me avec les dates � ins�rer dans une base Oracle avec ColdFusion : J'ais 2 zones de liste d�roulante : mois(option value=01, 02, 03... et ann�e(option value=2009,2010...) et je voudrais simplement concat�ner mes valeur pour inserer dans ma base oracle 2009/01 pour janvier 2009 par exemple

    Voici mon code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    <cfset datj = createdate(year(#form.annee#), month(#form.mois#), day(00))> 
    	<cfset date_souhaite = dateformat(datj,"00/#form.mois#/#form.annee#")>
        <cfoutput>#date_souhaite#</cfoutput>
    	<cfquery datasource="#dsn#" name="aff">
    		  insert into TABLEDEMANDE 
    			(IDDEMANDE, DATE_SOUHAITEE)values (t_veh_demande_seq.nextval, to_date(#date_souhaite#))
    	</cfquery>
        <cfoutput>insertion OK</cfoutput>
    Les date sont un v�ritable casse-t�te pour CF et oracle... Merci!

  2. #2
    Membre averti
    Inscrit en
    F�vrier 2009
    Messages
    33
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2009
    Messages : 33
    Par d�faut
    personne n'a d'id�e ?
    Sinon je sui obliger d'ins�rer du varchar dans ma base... pas tr�s propre le code :/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 29
    Par d�faut
    Bonjour,
    Je ne suis pas expert Oracle, mais je ferai plut�t ceci :

    Je mets au format de ma base de donn�es:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <cfset date_formatee = "#form.annee#-#form.mois#-01">
    Puis j'insers :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    <cfquery ...>
    insert into TABLEDEMANDE (date_voulue)
    VALUES ('#date_formatee#')
    </cfquery>
    Ceci fonctionne tr�s bien avec MySQL mais � v�rifier sur Oracle.

  4. #4
    Membre averti
    Inscrit en
    F�vrier 2009
    Messages
    33
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2009
    Messages : 33
    Par d�faut
    apparement le mieux pour formater la date serait :
    to_date(#variable#, 'yyyy-mm-dd')

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 29
    Par d�faut
    Bonjour,
    merci du renseignement.

    Ceci dit Oracle accepte-t-il le format de date YYYY-MM-00 ou lui faut-il une date valide YYYY-MM-01 ?

  6. #6
    Membre Expert
    Homme Profil pro
    D�v. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : D�v. Java & C#
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par d�faut
    Bonjour,

    Avant tout, il n'est pas n�cessaire de mettre des # partout . Pour ma part, je consid�re ceci une tr�s mauvaise pratique en CF (presque 10/10 sur l'�chelle du programmeur goret).

    Je ferme la parenth�se... J'esp�re de n'avoir bless� personne.

    Je reviens � la question du PO.

    En oracle, il est pr�f�rable d'indiquer le format dans la fonction to_date sinon il prend le format par d�faut qui peut changer de base � base.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <cfset datj = createdate(year(form.annee), month(form.mois), day(00))>
    <cfset date_souhaite = dateformat(datj,"#form.mois#/#form.annee#")>
    <cfoutput>#date_souhaite#</cfoutput>
    
    <cfquery datasource="#dsn#" name="aff">
      insert into TABLEDEMANDE
    (IDDEMANDE, DATE_SOUHAITEE) values (t_veh_demande_seq.nextval, to_date(#date_souhaite#, 'mm/yyyy'))
    </cfquery>
    <cfoutput>insertion OK</cfoutput>
    En plus, en oracle, il pr�f�rable d'utiliser les variables "bind�es" (voir la balise <CFQUERYPARAM>). Pour la simple raison que sans variable, Oracle calcule le plan d'ex�cution � chaque ex�cution d'un interrogation SQL.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 29
    Par d�faut
    Bonjour Jowo,

    Tu �cris :
    Avant tout, il n'est pas n�cessaire de mettre des # partout . Pour ma part, je consid�re ceci une tr�s mauvaise pratique en CF.
    Je veux bien mais en quoi, dans les codes �crits dans cette page, y a t il des # de partout ?
    (pas d'inqui�tude, je ne suis pas bless�, c'est juste pour information).

    lorsque j'�cris
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <cfset date_formatee = "#form.annee#-#form.mois#-01">
    C'est pour �viter de cr�er un objet Date qui lui prend de la m�moire.
    Ou peut-�tre me trompe-je ?

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 84
    Par d�faut
    Bonjour,

    alors pour notre part, mise � part le probl�me de m�moire utilis� et du format, nous utilisons toujours les CFQUERYPARAM pour l'insertion dans les BD Oracle:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    <cfquery>
    insetion into maTable (maDate) values ( <cfqueryparam value="#this.Date#" null="false" cfsqltype="cf_sql_time"> )
    </cfquery>
    Par contre au niveau de la cr�ation de la date, je suis tout � fait d'accord avec JOWO

Discussions similaires

  1. [AC-2007] Probl�me de gestion des droits sur une base ODBC (SQL Server)
    Par alexandre.g dans le forum S�curit�
    R�ponses: 0
    Dernier message: 16/06/2014, 17h35
  2. [11g] Probl�me de Connexion sur une Base Oracle 11g XE � partir de sqldeveloper 4.0.1
    Par iaiiai dans le forum Connexions aux bases de donn�es
    R�ponses: 1
    Dernier message: 09/05/2014, 22h45
  3. R�ponses: 4
    Dernier message: 02/03/2010, 16h09
  4. Probl�mes de performances sur une base oracle 10g
    Par ORAMEL dans le forum Oracle
    R�ponses: 3
    Dernier message: 11/09/2007, 09h11

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