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

WinDev Discussion :

Rubrique Type Durée en Mysql


Sujet :

WinDev

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 251
    Points : 98
    Points
    98
    Par défaut Rubrique Type Durée en Mysql
    Bonsoir à tous.
    J'ai problème avec la gestion d'une rubrique durée sauvegardée sous MySql.
    Par défaut Windev crée une rubrique Mysql BigInt(20) pour la rubrique WD Date -> Durée

    J'écris une durée dans le ficher Hmodif(), mais quand je la relit la valeur à changé!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    VoIP.Dureee..Seconde = 548   // VoIP.Dureee = 0000908000
    Dans MySql = 908000
    Lecture avec WD MAP = 15:08:000 ms
    A la lecture cela est modifié!
    Dans le fichier visualisé en Debug après HModif() j'ai bien 0908000
    Mais si je relit de nouveau je retrouve 1508000

    Je tourne en rond!

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 251
    Points : 98
    Points
    98
    Par défaut
    J'ai fait des essais:
    Il sauve la valeur comme Durée MNSSMMM mais le relit comme millième de seconde:

    Durée..seconde = 61 -> Durée = 0101000 -> MySQL = 101000

    Mais quand WD relit = 01:41:000ms
    En fait 1mn 41s = 101000 millièmes de seconde.

    Bizard

  3. #3
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut
    Bonjour

    Juste pour infos, vous envoyez une durée dans un entier (BigInt de Mysql)... et idem au retour entier -> durée.
    J'imagine qu'il faut transformer la durée en entier avant d'écrire dans MySQL et interpréter l'entier en durée au retour.

    Je vous invite à utiliser donc la propriété ..EnMilliseconde pour exprimer la durée une valeur entière de millisecondes.
    pour la conversion inverse, je pense qu'il faille à utiliser des entierversdate et entierversheure pour les parties durée au dessus et au dessous du nombre de milliseconde d'une journée (86400000)...

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 251
    Points : 98
    Points
    98
    Par défaut
    En fait, puisque c'est une rubrique de fichier, qui est créée automatiquement par Windev dans MySql Natif, la logique est que tu puise relire ce que tu a écris.
    Il est clair que le choix de BigInt est pour permettre de sauvegarde des nº avec beaucoup de chiffres.
    Il maintient d’ailleurs le format de la rubrique Durée de HFSQL, avec 000 pour les millièmes de secondes.
    Le problème c'est qu'il le relit mal.

    Il y a des solutions, comme celle que tu indiques e que j'ai mis en place, sauvegardant les durée en secondes.

    Mais cela n'est pas cool pour la maintenance d'un programme sur plusieurs plateformes, qui est le point fort de Windev.

    Donc je pense qu'il s'agit d'un Bug, mais j'attends que quelqu'un le confirme pour l'envoyer à PC SOFT.
    Je peux m’être trompé!

    Mais je le doute car en fait je ne fais rien:
    Je crée un fichier avec une rubrique durée, fichier sur mysql.
    J'enregistre une durée: Hajoute() et je la relis: HLitRecherchePremier() !!!

Discussions similaires

  1. Réponses: 21
    Dernier message: 15/10/2010, 20h33
  2. L'équivalent du type TEXT de MySQL ?
    Par sami_c dans le forum SQL
    Réponses: 9
    Dernier message: 11/06/2007, 19h14
  3. dbmemo type de champ mysql
    Par Mihalis dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/01/2007, 18h30
  4. type Image sous MySql
    Par RaTm dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 21/02/2006, 11h27

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