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

Requêtes MySQL Discussion :

Mise a jour d'une bdd via une autre


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Mise a jour d'une bdd via une autre
    Bonjour à tous, je suis actuellement en 1ere année de BTS IRIS et j'effectue en ce moment mon stage dans un CFA (centre de formation d'apprentis) du btp, et j'aurais besoin d'un peu d'aide.

    Voila mon problème :

    Le CFA utilise 2 bdd :
    -une base PRONOTE (assez connu dans l'enseignement, elle regroupe les informations "scolaire" de tous les apprentis, notes, appréciations...).
    -une base FASTE* (elle regroupe les informations administratives des apprentis et des sociétés les employant)

    *FASTE est un logiciel développé par le CCCA-BTP (le comité d’apprentissage du btp)

    La base de données FASTE est mise à jour en continue par les secrétaires (suppression des apprentis n’étant plus élève du CFA, changement d’adresse, d’entreprise…), contrairement a la base PRONOTE qui, elle, est mise a jour qu’une a deux fois par an (via une procédure apparemment assez lourde).
    C’est ici que se situe le problème, l’envoi de bulletins de notes et d’absences se fait via la base PRONOTE (le logiciel PRONOTE gère ça tout seul) hors cette base n’étant pas a jour, des courriers sont envoyés a des apprentis ne faisant plus parti du CFA.

    Le but de mon projet est donc d’automatiser la mise à jour de la base PRONOTE via la base FASTE (les deux bases sont sur des serveurs différents) pour simplifier la procédure et la planifier afin qu’elle s’exécute tous les X jours.

    Pour le moment c’est sur la programmation de la mise à jour que j’accroche (je ne m’occupe pas de la planification pour l’instant). Je n’ai que très peu manipuler de base de données (1tp ou j’ai fait des actions simple, création d’une base, ajout d’entrée…) et je n’ai donc absolument aucune idées sur comment faire cette mise à jour.

    Je ne vous demande pas de me mâcher le travail mais de me donner un fil directeur et quelques idées pour avancer. En espérant que vous puissiez m’aider, merci.

    PS : Je suis désolé si ce post n'est pas dans la bonne section.
    PS 2 : Si il vous manque des infos hésitez pas a me demander.

    Edit : Allez directement voir le message #12 mon probleme a changé

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 800
    Points : 34 051
    Points
    34 051
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Merihem Voir le message
    Le but de mon projet est donc d’automatiser la mise à jour de la base PRONOTE via la base FASTE (les deux bases sont sur des serveurs différents)
    Je ne vois pas d'autre solution que de développer une interface qui ira chercher les infos dans une base puis les comparera aux infos de l'autre base et fera les mises à jour nécessaires.
    Sur le même serveur et avec le même SGBD, ça aurait été beaucoup plus simple.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup pour la réponse, mais je n'ai aucune idée justement de comment récupérer les infos d'une base (je me doutais qu'il fallait récupérer les données et les comparer).

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 800
    Points : 34 051
    Points
    34 051
    Billets dans le blog
    14
    Par défaut
    Un petit programme avec le langage de programmation de ton choix (php par exemple) qui va :
    - établir une connexion à la première base ;
    - exécuter des requêtes SQL sur cette base ;
    - stocker leur résultat dans des variables ou des objets ;
    - établir une connexion à la seconde base ;
    - exécuter des requêtes SQL sur cette base ;
    - stocker leur résultat dans des variables ou des objets ;
    - comparer les variables et/ou les objets ;
    - préparer des requêtes avec les mises à jour nécessaires ;
    - les exécuter sur la seconde base ;
    - fermer les connexions aux bases.

    Bon courage !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Ah c'est déjà plus clair, je peux donc faire ça partir d'un programme en c++? Je repasserais par là si j'ai un problème. Encore merci.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Alors j'ai du nouveau, finalement je ne vais pas du tout avoir besoin d'utiliser le langage SQL. J’ai mis la main sur la procédure manuelle de mise à jours de la base PRONOTE, la voila en gros :

    - La base FASTE est extraite et importée sur Excel ;
    - Plusieurs modifications sont exécutées sur le fichier Excel (fusion de certaines colonnes etc, afin de coller avec la forme de la base PRONOTE) ;
    - Ce fichiers est enregistrer en fichier texte (séparateur : tabulation) (*.txt) ;
    - Le fichier Excel est ensuite importé à son tour via une fonction du logiciel Pro-note pour remplacer l’ancienne base PRONOTE.

    Pour ce qui est de l’étape Excel je n’ai pas de soucis, une simple macro devrait faire l’affaire. En revanche je n’ai trouvé aucune infos claire sur le net concernant le lancement d’une macro office en c++ (il y a certain exemple d’utilisation avec MFC mais sa me parait compliqué). De plus je ne sais pas comment je peux piloter (si c’est possible) un autre programme avec mon prog c++ (ordonner par exemple l’extraction de la base FASTE et son importation sur Excel). Voila il me reste encore énormément de chemin à parcourir, j’espère que vous pourrez m’éclairer un peu.

    PS : Je pense qu’il serait plus logique de reposer ma question dans la section c++ maintenant, non ?

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 800
    Points : 34 051
    Points
    34 051
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Merihem Voir le message
    PS : Je pense qu’il serait plus logique de reposer ma question dans la section c++ maintenant, non ?
    Effectivement !
    N'oublie pas de marquer cette discussion-ci en

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bon alors après un petit tour sur le forum C++, où on m’a assuré que faire mon programme en PHP et SQL serait beaucoup plus simple (voila le post), je reviens donc vous voir.
    Je vais essayer de me débrouiller seul avec les requêtes SQL qui servirons à mettre à jour ma base (je vais coder tout se qui était fait via Excel dans la procédure) mais j’ai quand même une petite question. Voila se qui m’a été dit sur le forum C++ :
    - Extraire toute la base et la charger dans une base temporaire (MySQL par exemple)
    - Travailler sur la base temporaire pour faire les mêmes traitements que sous Excel
    - Réinjecter le tout dans la base destination
    Je voulais savoir si le 1er et le 3ème points été faisable via des requêtes SQL (dans le but d’automatiser la mise a jour), ou sinon comment je peut le faire ?

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 800
    Points : 34 051
    Points
    34 051
    Billets dans le blog
    14
    Par défaut
    Si "Extraire toute la base" signifie importer des données de Excel dans une base MySQL, la réponse est OUI avec l'ordre LOAD DATA INFILE (voir doc MySQL).

    Si "Rénjecter le tout dans la base destination" signifie exporter des données de MySQL vers Excel, la réponse est oui avec l'ordre SELECT INTO OUTFILE (voir doc MySQL).

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    En fait en faisant mon programme avec PHP je ne vais plus du tout passer par Excel (tout se qui était fait avec Excel sera coder avec des requêtes SQL) donc sa donnerais plutôt :

    - Importer des données depuis le SGBD FASTE (la 1ère base) dans une base MySQL ;
    - …
    - Exporter des données de MySQL vers le SGBD Pro-note (la 2ème base).

    Sa reste faisable ?

  11. #11
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 800
    Points : 34 051
    Points
    34 051
    Billets dans le blog
    14
    Par défaut
    Dans la mesure où tu connais le type des deux BDD, où tu connais la structure de ces BDD et où il y a un connecteur pour php qui permette d'agir sur ces BDD, pas de problème.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    J’ai un gros problème avec SELECT INTO OUTFILE, j’ai une erreur que ne n’arrive pas a résoudre, voila ma syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from le_nom_de_ma_table into outfile 'test.sql'
    (le tout directement dans l'invite de commande de MySQL, avec une base que j’ai créer moi même pour faire des test) et voila l’erreur :

    ERROR 1 (HY000): Can’t create/write to file ‘c:\wamp\bin\mysql\mysql5.1.33\data\ma_base\test.sql’ (Errcode : 2)

    Je me suis renseigné sur le net il semble que ce soit un problème de droits sur les dossiers (je sous vista), tout mes dossier sont en effet en lecture seul (la case n’est pas coché il y a un petit carré bleu dedans) et impossible d’enlever cet attribut (quand je décoche et ferme le panneau paramètre le dossier se remet aussitôt en lecture seul), j’ai essayer tout se qui est proposé sur le net, passer en propriétaire du dossier (je suis le seul utilisateur du pc, c’est mon portable), taper la commande attrib –r dans la console Windows etc. Rien à faire…

Discussions similaires

  1. Mise à jour de fichier excel via une BDD Access
    Par iliaseyah dans le forum Macros et VBA Excel
    Réponses: 49
    Dernier message: 20/08/2015, 14h23
  2. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  3. [MySQL] Afficher une IMAGE dans une BDD via PHP
    Par lothar59 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/01/2011, 15h17
  4. Réponses: 7
    Dernier message: 02/06/2009, 13h52
  5. interroger une bdd via une page web
    Par lafrite972 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 10/04/2007, 18h22

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