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

C++ Discussion :

Transformer classe c++ en table ou en script sql


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Points : 366
    Points
    366
    Par défaut Transformer classe c++ en table ou en script sql
    Bonjour,

    Dans un épisode du podcast nipdev (Podcast de nipteck dédié au développement), il me semble avoir entendu dire qu'il était techniquement possible de transformer une classe en script sql en tenant compte de leur propriété et de leur héritage.
    Dans le cas présent, j'aimerais faire cela avec les classes recurence et recurencerule de kdepim:kcalcore.
    A noter que ces classe utilise un qshearedatapointer pour accéder aux propriétés. J'espère que cela ne pose pas problème.
    Mon but est non seulement de transformer ces classe kde en script sql mysql mais ensuite de les intégrer sous forme de modules dans l'ero open source dollibarr.
    Existe-t-il des programmes de préférence libre et opensource pour faire cette transcription automatiquement ?

    Merci pour votre aide.

    Salutations
    Battant

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Tu parles je suppose de créer automatiquement un script DDL pour créer les tables?

  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Points : 366
    Points
    366
    Par défaut
    Bonjour,

    C'est quoi DDL ? Ne vouliez-vous pas parler de sql ? Si vous vouliez parler de générer un script sql a partir de classes c++ pour créer des table MySQL alors oui.

    J'ai réécouté l'épisode de podcast de nipdev (pour info c'est le numéro 3 "data et neosql"). Ils parlaient de hyperbare de java persistance api et d'ORM.

    Est-ce qu'à votre avis cela pourrait m'aider ?

    Merci pour votre réponse.

    Salutations
    Battant

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 116
    Points : 32 968
    Points
    32 968
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    il existe de nombreux logiciels qui permettent de créer diagramme UML à partir de headers, la plupart de ces logiciels permettent aussi de créer des db sql à partir de ces uml.
    Bref, regarde du côté des logiciels UML.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre averti
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Points : 366
    Points
    366
    Par défaut
    Bonjour,

    N'auriez-vous pas quelques références de logiciels de préférence libres et open source ?
    Je travail sous linux mais j'ai aussi un mac avec mac os et Windows.

    Merci pour votre aide.

    Salutations
    Battant

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 481
    Points : 4 238
    Points
    4 238
    Par défaut


    Tu peux tester QxOrm + QxEntityEditor :
    http://www.developpez.net/forums/d13...otheque-qxorm/

    Je travaille actuellement sur le plugin DDL pour générer le script SQL pour générer le schéma de base de données. Ce nouveau plugin sera dispo d'ici le 15 décembre je pense.
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Salut, pour ton information, DDL=Data Definition Language, c'est le langage pour créer la structure d'une base de données (tables, clefs, indexs, séquences pour certaines bases...)
    Beaucoup de gens l'amalgament avec le SQL, mais ce n'est pas entièrement exact, le SQL étant le langage standardisé pour mettre à jour et consulter les données(Structured Query Language). Vu ce que tu dis, je pense que tu parles en fait de créer à partir de définitions de classes un script DDL qui crée la base de données correspondante.
    Il y a certainement des composants disponibles, mais je ne suis pas sûr que ça permette de traiter n'importe quelle classe (c'est faisable pour des structures de données à l'ancienne, mais pour persister l'état d'une classe orientée service c'est pas garanti, AMHA).

  8. #8
    Membre averti
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Points : 366
    Points
    366
    Par défaut
    Bonjour,

    Je te conseille de suivre le lien proposé par Qxqcm. Dans son sujet, il y a les liens vers les classe c++ de kdepim que j'aimerais transformer en script sql pour mysql en concernant les propriétés qu'elles soit héritée ou non. Le reste devrait plutôt être traduit en php pour être compréhension par dolibarr (erp open source sur lequel je travaille).

    Merci pour votre aide

    Salutations
    Battant

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Hmmm de ce que je vois il s'agit d'un processus manuel: tu crées un modèle UML des classes à persister, qui est automatiquement transformé en DDL.
    Tu évoques Hibernate, effectivement il peut écrire (plus ou moins) automatiquement des scritps DDL pour créer la base à partir des classes Java, et réaliser (plus ou moins) automatiquement le mapping ORM, c'est à dire fournir la logique de persistance.
    Cependant, ça marche en s'appuyant sur la fonctionnalité de réflexion de Java, qui n'existe pas en C++, et malgré ça (mon "plus ou moins" devant automatiquement) il faut parfois lui donner un petit coup de pouce avec de la configuration ou des annotations sur les classes.
    C'est théoriquement possible de créer un schéma à partir de headers C++ (analyse des héritages et des membres données) mais plutôt pour des classes à données publiques (ou getter/setter publiques) que pour des classes orientées services. A partir de classes non conçues pour ça je ne jurerais pas que l'automatisation est possible...

  10. #10
    Membre averti
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Points : 366
    Points
    366
    Par défaut Convertir classe recurrence et recurrenceRule en SQL
    Bonjour,

    Voici les liens vers les classe que j'aimerais convertir en fichier sql pour mysql.

    http://api.kde.org/4.11-api/kdepimli...pp_source.html

    http://api.kde.org/4.11-api/kdepimli...pp_source.html

    Le problème que j'ai eu, c'est que je n'ai pas trouvé d'UML concernant ces classe malgré ma demande dans la mailing list de kdepim. Il y a bien une documentation UML dans le package kdepim-runtime mais il concerne uniquement le serveur akonadi.

    Dans ce code, les propriété accessibles depuis l’extérieur se repère avec les même méthode que java mais il n'y a pas de get au début de la méthode de lecture. La méthode set quant à elle est présente.

    Il y a des méthode en lecture seules.

    Pensez-vous que ce soit suffisant pour traduire au mois ce qui peut l'être en DDL?

    Merci pour votre aide.

    Salutations
    Battant

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/10/2009, 09h59
  2. Réponses: 2
    Dernier message: 13/03/2006, 17h25
  3. [MySQL] Vérification de l'inexistence d'un fichier dans ma table pour un script d'upload
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 14/02/2006, 16h35
  4. Ajout de champs à une table via un script ?
    Par mathias dans le forum Access
    Réponses: 1
    Dernier message: 05/12/2005, 23h02
  5. Exporter le contenu d'une table sous forme d'un script SQL
    Par Invité dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 14/09/2005, 10h08

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