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

PyQt Python Discussion :

Comment utiliser le contenu de QtSql.QSqlTableModel.record [QtSql]


Sujet :

PyQt Python

  1. #1
    Membre du Club Avatar de ptissendier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 64
    Points : 53
    Points
    53
    Par défaut Comment utiliser le contenu de QtSql.QSqlTableModel.record
    Bonjour,

    J'utilise QtSQL avec un base MySQL.
    En lecture de table je récupère des "records" qui contiennent des champs
    1. string ou les accens sont mal encodés
    2. dates sous la forme 'PyQt5.QtCore.QDate(2014,1,5)'


    Pouvez vous me dire comment les convertir en chaîne "normale" afin de les imprimer.
    Je débute en python et PyQt, mais ça commence à venir non sans mal.
    Merci de votre aide.
    Ubuntu 22.04.1 LTS
    LibreOffice 7.4.3

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Je n'ai pas de QSql sous la main pour vérifier, quel est le type pour les strings, si tu es sous Python 3 tu devrais avoir de l'unicode normalement.

    Pour la date ce n'est vraiment pas compliqué;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> from PyQt5.QtCore import QDate
    >>> now = QDate.currentDate()
    >>> now.year(), now.month(), now.day()
    (2014, 2, 13)

  3. #3
    Membre du Club Avatar de ptissendier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 64
    Points : 53
    Points
    53
    Par défaut
    Bonjour et merci pour ta réponse
    Je me suis mal expliqué.
    Voici ce que me retourne QSql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ['44860000', 'Etat : Charges Ã\xa0 payer', PyQt5.QtCore.QDate(2012, 10, 15), '', 'rmp59', 'Prélèvement Foncier', 173.0, 0]
    ['51210000', 'BQE : Compte courant', PyQt5.QtCore.QDate(2012, 10, 15), '', 'rmp59', 'Prélèvement Foncier', 0.0, 0]
    ['44551000', 'TVA Ã\xa0 décaisser', PyQt5.QtCore.QDate(2012, 10, 22), '', 'rmp59', 'Prélèvement Foncier', 812.0, 0]
    Avec python3 je voudrais simplement un :
    print("{} {} {} {} {} {} {:10.2f} {:10.2f}".format(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7]))
    Qui me donne quelque chose de plus lisible sur r[1] et r[2]

    Encore merci pour ton aide
    Ubuntu 22.04.1 LTS
    LibreOffice 7.4.3

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Quand on a une date sous forme de QDate, il est facile de la convertir en chaine avec un format:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    date = QtCore.QDate(2014,1,5)
    print date.toString("dd/MM/yyyy")
    05/01/2014
    ou même en une seule ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print QtCore.QDate(2014,1,5).toString("dd/MM/yyyy")
    05/01/2014
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  5. #5
    Membre du Club Avatar de ptissendier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 64
    Points : 53
    Points
    53
    Par défaut
    Merci, c'est super !! pour la date
    Je cherche encore pour le coding. Mais je vais trouver !!!
    Ubuntu 22.04.1 LTS
    LibreOffice 7.4.3

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

Discussions similaires

  1. [MooTools] Request,comment récupérer le contenu pour l'utiliser dans le script ?
    Par dawadam dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 09/07/2008, 23h22
  2. Comment utiliser QtSql pour communiquer avec un serveur MySQL ?
    Par sebatlante dans le forum Bases de données
    Réponses: 8
    Dernier message: 10/06/2008, 14h34
  3. Réponses: 2
    Dernier message: 09/01/2008, 09h40
  4. [CKEditor] Utilisation : comment récupérer le contenu de ma saisie ?
    Par MasterChief78 dans le forum Bibliothèques & Frameworks
    Réponses: 7
    Dernier message: 13/04/2007, 17h53

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