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

Bases de données Delphi Discussion :

Problème de Base de données avec Mysql


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 10
    Points : 12
    Points
    12
    Par défaut Problème de Base de données avec Mysql
    Bonjour
    Je développe une appli avec Delphi 7 via EasyPhp 2.6.1 (Bd MySql 1.4.9)
    Je rencontre deux problèmes majeurs en ce moment :

    1°) MySQL me présente les date sous le format yyyy-mm-dd (0000-00-00) J’aimerai pouvoir changer ce format en (jj-mm-aaaa ou jj-mm-aa) qui correspond au format de conception depuis delphi. Que dois-je faire ?

    2°) La fonction OpenPicture.FileName de Delphi me donne le chemin complet pour aboutir à un fichier image, sous la forme « C:\Chemin1\Chemin…\nomFichier ».
    Lorsque j’insère cette données dans ma bd MySql via la commande insert, le caractère « \ » anti-slash est ignoré et j’obtiens « C :Chemin1Chemin…nomFichier »
    Par exple :
    VarChemin :=’F:\Photo\Pomme.jpg’
    Après insertion, le champ VarChar de la Bd me donne ‘F hotoPomme.jpg

    Que dois-faire ?

    Bonne et heureuse Année 2008

  2. #2
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Réponse 1:

    Le format de la date heure sous mysql est le format universel (si je me souviens bien).
    Tu as deux solutions pour ton problème soit tu utilises la fonction date_format dans une requete pour que ça te le sorte comme tu veux.

    DATE_FORMAT(date,format)
    Formate la date date avec le format format. Les spécificateurs suivants peuvent être utilisé dans la chaîne format :
    Option Description
    %% Un signe pourcentage littéral ‘%’.
    %a Nom du jour de la semaine, en abrégé et en anglais (Sun..Sat)
    %b Nom du mois, en abrégé et en anglais (Jan..Dec)
    %c Mois, au format numérique (1..12)
    %d Jour du mois, au format numérique (00..31)
    %D Jour du mois, avec un suffixe anglais (1st, 2nd, 3rd, etc.)
    %e Jour du mois, au format numérique (0..31)
    %f Microsecondes (000000..999999)
    %H Heure (00..23)
    %h Heure (01..12)
    %I Heure (01..12)
    %i Minutes, au format numérique (00..59)
    %j Jour de l'année (001..366)
    %k Heure (0..23)
    %l Heure (1..12)
    %m Mois, au format numérique (01..12)
    %M Nom du mois (January..December)
    %p AM ou PM
    %r Heures, au format 12 heures (hh:mm:ss [AP]M)
    %s Secondes (00..59)
    %S Secondes (00..59)
    %T Heures, au format 24 heures (hh:mm:ss)
    %U Numéro de la semaine (00..53), où Dimanche est le premier jour de la semaine
    %u Numéro de la semaine (00..53), où Lundi est le premier jour de la semaine
    %V Numéro de la semaine (01..53), où Dimanche est le premier jour de la semaine, utilisé avec '%X'
    %v Numéro de la semaine (01..53), où Lundi est le premier jour de la semaine, utilisé avec '%x'
    %W Nom du jour de la semaine (Sunday..Saturday)
    %w Numéro du jour de la semaine (0=Sunday..6=Saturday)
    %X Année, pour les semaines qui commencent le Dimanche, au format numérique, sur 4 chiffres, utilisé avec '%V'
    %x Année, pour les semaines qui commencent le Lundi, au format numérique, sur 4 chiffres, utilisé avec '%v'
    %y Année, au format numérique, sur 2 chiffres
    %Y Année, au format numérique, sur 4 chiffres

    Tous les autres caractères sont simplement copiés dans le résultat sans interprétation:
    Le format %f est disponible depuis MySQL 4.1.1.
    Depuis MySQL version 3.23, le caractère ‘%’ est requis devant les caractères de format. Dans les versions antérieures de MySQL, ‘%’ était optionnel.
    La raison qui fait que les intervalles de mois et de jours commencent avec zéro est que MySQL autorise les dates incomplètes comme '2004-00-00', depuis MySQL 3.23.
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
    -> 'Saturday October 1997'
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
    -> '22:23:00'
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
    '%D %y %a %d %m %b %j');
    -> '4th 97 Sat 04 10 Oct 277'
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
    '%H %k %I %r %T %S %w');
    -> '22 22 10 10:23:00 PM 22:23:00 00 6'
    mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
    -> '1998 52'


    http://dev.mysql.com/doc/refman/5.0/...functions.html

    Soit tu changes l'interprétation de la date sous delphi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      DateSeparator:= '/';
      TimeSeparator:= ':';
      ShortDateFormat:= 'dd/MM/yyyy';
      ShortTimeFormat:= 'hh:mm:ss';
      DoubleBuffered:=true;
      // Spécifie si les paramètres de format sont actualisés automatiquement
      // quand l'utilisateur modifie la configuration du système.
      Application.UpdateFormatSettings:=false;
    Réponse 2:
    Pour avoir un / il faut en faire un double soit //

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Peter K. Voir le message
    Bonjour
    Je développe une appli avec Delphi 7 via EasyPhp 2.6.1 (Bd MySql 1.4.9)
    Je rencontre deux problèmes majeurs en ce moment :

    1°) MySQL me présente les date sous le format yyyy-mm-dd (0000-00-00) J’aimerai pouvoir changer ce format en (jj-mm-aaaa ou jj-mm-aa) qui correspond au format de conception depuis delphi. Que dois-je faire ?
    Je ne répondrais pas, cela a été fait plus haut ^^

    Citation Envoyé par Peter K. Voir le message
    2°) La fonction OpenPicture.FileName de Delphi me donne le chemin complet pour aboutir à un fichier image, sous la forme « C:\Chemin1\Chemin…\nomFichier ».
    Lorsque j’insère cette données dans ma bd MySql via la commande insert, le caractère « \ » anti-slash est ignoré et j’obtiens « C :Chemin1Chemin…nomFichier »
    Par exple :
    VarChemin :=’F:\Photo\Pomme.jpg’
    Après insertion, le champ VarChar de la Bd me donne ‘F hotoPomme.jpg
    Peux tu nous montrer ta fonction qui permet l'insertion des données dans ta table ?

    Citation Envoyé par Peter K. Voir le message
    Bonne et heureuse Année 2008
    De même
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/03/2010, 15h58
  2. Réponses: 4
    Dernier message: 10/05/2009, 10h18
  3. réplication d'une base de données avec mysql
    Par dtthierry dans le forum Administration
    Réponses: 1
    Dernier message: 18/09/2008, 18h14
  4. Problème de base de données avec Zend exception PDO
    Par websurfeur dans le forum Zend Framework
    Réponses: 8
    Dernier message: 20/04/2007, 16h49
  5. Problème Update Base de données avec les composants ADO
    Par lingli dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/04/2006, 00h41

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