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

4D Discussion :

Conversion d'un champ SQL DATETIME vers un champ ou Variable 4D


Sujet :

4D

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut Conversion d'un champ SQL DATETIME vers un champ ou Variable 4D
    bonjour,

    dans mes bases MySQL j'ai des champs de type datetime (format du champ : YYYY-MM-DD HH:MN:SS ).

    Actuellement je récupère mes champs dans des tableaux de cette façon :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    LISTE SOURCES DONNEES(Source de données utilisateur ;$t_nomSources;$t_nomPilotes)
     
    UTILISER BASE EXTERNE($t_nomSources{2})
     
    $v_heure:=†00:00:00TABLEAU ENTIER LONG(id;0)
    TABLEAU ALPHA(255;reference;0)
    TABLEAU ENTIER(montant;0)
    TABLEAU ALPHA(255;transaction;0)
    TABLEAU ALPHA(255;authorisation;0)
    TABLEAU ENTIER(error2;0)
    TABLEAU DATE(date_cre;0)
    TABLEAU ENTIER LONG(time_cre;0)
     
    Debut SQL
    	USE kabia_billing;
     
    	SELECT id,reference,montant,transaction,authorisation,error,TIME(date_cre),DATE(date_cre) 
    	FROM billing 
    	INTO :id,:reference,:montant,:transaction,:authorisation,:error2,:time_cre,:date_cre;
     
    Fin SQL
     
    boucle($i;1;taille tableau (time_cre))
    	$v_heure:=Heure(Chaine heure(time_cre{$i}))
     
    	**`traitement des informations ...
     
    Fin de boucle
    Existe-t-il une solution pour récupérer directement dans ma table 4D [Achats_CreLoaded] qui contient les champs correspondants aux variables Tableaux (sauf pour l'heure) ?

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    359
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 359
    Points : 613
    Points
    613
    Par défaut
    Pour insérer directement dans les champs d'une table, il faut passer les champs dans la clause INTO en les entourant des << >>.

    En supposant que les champs aient les mêmes noms que les variables de ton bout de code, ça donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Debut SQL
    	USE kabia_billing;
     
    	SELECT id,reference,montant,transaction,authorisation,error,TIME(date_cre),DATE(date_cre) 
    	FROM billing 
    	INTO <<[maTable]id>>,<<[maTable]reference>>,<<[maTable]montant>>,<<[maTable]transaction>>,<<[maTable]authorisation>>,<<[maTable]error2>>,<<[maTable]time_cre>>,<<[maTable]date_cre>>;
     
    Fin SQL
    Voir ref_langage_4d

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    merci pour l'exemple
    et je suppose que pour une variable on doit effectivement "segementer" le champ datetime en deux valeurs (une pour la date et l'autre pour l'heure) pour ensuite les affecter aux variables 4D correspondantes sans devoir faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    boucle($i;1;taille tableau (time_cre))
    	$tableau_heure{$i}:=Heure(Chaine heure(time_cre{$i}))
    Fin de boucle

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    merci pour l'exemple
    et je suppose que pour une variable on doit effectivement "segmenter" le champ datetime en deux valeurs (une pour la date et l'autre pour l'heure) pour ensuite les affecter aux variables 4D correspondantes sans devoir faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    boucle($i;1;taille tableau (time_cre))
    	$tableau_heure{$i}:=Heure(Chaine heure(time_cre{$i}))
    Fin de boucle

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    359
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 359
    Points : 613
    Points
    613
    Par défaut
    Si j'essaie de "binder" une colonne MySQL de type datetime sur un champ Heure de 4D, -> pas de valeur retournée. Il faut donc spéficier quelle partie de datetime on veut récupérer, comme tu as fait.
    Je ne vois pas d'autres solutions.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    parfait au moins je sais que j'ai la bonne méthode pour la suite

    Merci pour les réponses !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/05/2011, 11h00
  2. Champs SQL Server Binary (image) conversion LINQ-objet image
    Par pierrot2k dans le forum Windows Presentation Foundation
    Réponses: 15
    Dernier message: 05/05/2008, 16h56
  3. conversion base de données sql server 7 vers Oracle 9
    Par hottnikks_79 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/03/2008, 13h48
  4. [SQL] Difference entre deux champs DATETIME
    Par syl2042 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/08/2007, 17h20
  5. Réponses: 1
    Dernier message: 19/02/2007, 15h05

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