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

OpenOffice & LibreOffice Discussion :

Utilisation de scriptforge + python [LibreOffice][Base de données]


Sujet :

OpenOffice & LibreOffice

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 180
    Par défaut Utilisation de scriptforge + python
    Bonsoir,
    Je découvre et étudie cette amélioration apporté par ce module. Il me semble prometteur pour l' avenir. J' ai démarré un exercice dont le but est de lister l'ensemble des tables d' une base HSQLDB libreoffice. La, je sèche sur la ligne Tables = db.GetTables(), voici le début du code:
    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
    #! /usr/bin/env python3
     
    from scriptforge import CreateScriptService
     
    bas = CreateScriptService('basic')
    ui = CreateScriptService('ui')
     
    def main(args = None):
        # Ouverture de la base de données
        doc = ui.OpenBaseDocument('/home/elfouster/Documents/demoDB.odb',"",2)
        db = doc.GetDatabase()
     
        # Récupérer la liste des tables
        Tables = db.GetTables()
     
        # Afficher les tables
        bas.MsgBox("Tables dans la base de données :")
        for table in tables:
            bas.MsgBox(f"- {table}")
     
    main()
    Le code erreur est:
    class attibut error
    sf_DataBase object has no attribute GetTables
    Pourriez-vous m' éclairer sur cette erreur?
    L' erreur pourrait-elle venir d' une utilisation de service ScriptForge?
    Cordialement

  2. #2
    Membre expérimenté Avatar de Amélie Ladoque
    Inscrit en
    Novembre 2004
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 301
    Par défaut
    Vous avez lu la documentation ?
    https://help.libreoffice.org/latest/...03/sf_toc.html
    Cette instruction n'est pas référencée.

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 180
    Par défaut Scriptforge
    Bonsoir et merci d' avoir répondu.
    Effectivement je n' avais pas trouvé cette méthode dans la doc. Toutefois, j' ai voulu tester en détournant une méthode de Forms.
    Au final existe-t-il une solution pour lister les tables d' une base?
    Cordialement

  4. #4
    Membre expérimenté Avatar de Amélie Ladoque
    Inscrit en
    Novembre 2004
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 301
    Par défaut
    Citation Envoyé par El Bosc Voir le message
    Au final existe-t-il une solution pour lister les tables d' une base?
    https://forum.openoffice.org/fr/foru...ic.php?t=57868

    Mais il est aussi possible de faire remonter la demande auprès des développeurs en allant sur Bugzilla

  5. #5
    Membre confirmé
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 180
    Par défaut
    Bonjour,

    Merci de vos liens. Effectivement le basic permet de réaliser l' objet de ma question. Le problème reste entier avec scriptforge.
    Je me suis rendu compte également quand cherchant à créer une table, il ne semble pas possible d' incrémenter automatiquement la clé de la table.
    Bon, cela est peut-être du à mes premiers pas dans ce module.
    En finalité, ce projet de SCRIPTFORGE ne me parait pas aussi mur que pouvait le laisser entendre la documentation.

    Cordialement

  6. #6
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 267
    Par défaut
    Hello,
    Citation Envoyé par El Bosc Voir le message
    En finalité, ce projet de SCRIPTFORGE ne me parait pas aussi mur que pouvait le laisser entendre la documentation.
    j'arrive peut-être un peu tard mais pour lister les tables d'une base de données avec scriptforge en python c'est tout simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    from scriptforge import CreateScriptService
     
    bas = CreateScriptService('basic')
     
    def listerTables(*args):
        # Ouverture de la base de données
        db = CreateScriptService("SFDatabases.Database", 'd:/dev/LibreOffice/TT NorthWind.odb') 
        # Afficher les tables
        message = 'Tables dans la base de données :\n' 
        for table in db.Tables:
            message += table + '\n'
        bas.MsgBox(message)
    En appelant la procédure listerTables j'affiche bien toutes les tables de ma base de données.

    Ami calmant, J.P

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/07/2009, 10h58
  2. dll C++ utilisant wxThread vers python
    Par miosepayo dans le forum Interfaçage autre langage
    Réponses: 0
    Dernier message: 29/04/2009, 18h17
  3. utiliser xor sous python
    Par nina08 dans le forum Général Python
    Réponses: 6
    Dernier message: 04/08/2008, 16h30
  4. Utiliser le shell python dans ses programmes ?
    Par kedare dans le forum Général Python
    Réponses: 6
    Dernier message: 21/05/2008, 21h25

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