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

Symfony PHP Discussion :

Ajax + connexion à une BD oracle


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 131
    Par défaut Ajax + connexion à une BD oracle
    Bonjour à tous,

    Voilà, je souhaiterais faire une requete sur une autre base de données que ma base mysql, une base Oracle (sur un autre serveur). Il s'agit de notre base de données Oracle du logiciel de ressources humaines.

    En gros, lorsque l'utilisateur tape une chiffre du matricule d'un agent, il faudrait envoyer une requete via ajax sur cette base et rappatrier les occurences d'employés correspondantes (faire un genre de auto completer, qui en fonction du matricule saisi, permettrait de remplir automatiquement (en un clic dans une liste de choix) les autres champs du formulaire (nom, prénom etc.)

    Dans un premier temps, comment feriez vous pour exécuter une telle requete ajax ? (je n'ai encore jamais utilisé ajax avec symfony). J'ai installé sfJqueryReloaded.

    D'autre part comment faire pour interroger cette seconde base de données et être sûr d'être en lecture (je voudrais être certain de ne pouvoir faire que du select...)

    Voilà, j'espère que c'est assez clair...

    Vos idées sont la bienvenue !

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Si je comprends bien, tu as trois intervenants dans ton exposé :
    • C1: le client final avec son explorateur et une applications HTTP + JavaScript qui doit pouvoir exécuter des requêtes "AJAX"
    • S1: Le serveur d'application avec un serveur web (apache ?) et une base de donnée en local (?)
    • S2: Un deuxième machine avec une base Oracle; as-t-elle un serveur web ?


    Questions
    • As-tu la main sur la machine Oracle (S2) ?
    • Peux-tu développer des modules sur cette machine (S2) ?
    • As-tu une API pour t'y connecter (S1->S2) ?
    • As-tu la possibilité depuis S1 d'établir une liaison directe à la base de données S2 ?
    • Est-ce le client [C1] qui DOIT établir cette liaison directement ?
    • AJAX est-il OBLIGATOIRE pour récupérer ces données (et quid des C1 qui ont désactivé le javascript ?
    • Qui établi les droits sur la base de données S2 ? Le client avec un deuxième login ?


    Histoire de pouvoir un peu mieux cerner la chose.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 131
    Par défaut
    salut, merci pour ta réponse.

    Alors, la config plus précise :

    S1 : Serveur WEB apache + PHP5 + mysql en local. SE : Debian 5
    S2 : Serveur Oracle sous Windows 2003 (j'ai tous les accès qu'il faut), pas de serveur web

    Je ne souhaite pas développer de module sur S2, simplement interroger la base depuis S1.

    Je pensais à une solution plus simple en lisant ton post :

    Installer un client oracle sur linux (S1à. Se connecter à la base Oracle sur S2 avec un script (toutes les nuits par exemple) et rapatrier les données dans la base SQL locale de S1.

    C'est asynchrone mais ça devrait me suffire.

    Le problème avec Oracle, c'est que le moindre driver ODBC pour s'y connecter n'est pas gratuit (dans ceux que j'ai trouvés. Et je ne peux pas en acheter un). A moins que quelqu'un connaisse un moyen d'interroger gratuitement une base Oracle avec PHP ?

    Qu'en penses-tu ?

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Dans cette configuration tu as 3 possibilités mais une seul solution :

    1) Interroger S2 depuis le client C1 se qui va nécessité des services web et du développement sur S2, donc impossible (et franchement, ce n'est pas une bonne idée).

    2) Le client interroge S1 qui, par une API, va interroger en directe S2. Inconvénients : il faut du développement sur S2 (l'API) ; avantages ; une indépendance de l'application sur S1 avec la structure de la base de données sur S2.

    3) Le client interroge S1 qui va en directe récupérer sur S2 par un accès à la base. Inconvénient : il faut un drivers et la connaissance de la structure, la moindre modification sur S2 va entraîner des modifications sur S1 ; avantage : pas de développement sur S2.

    4) Le client interroge S1 qui a en local une copie de données de S2. Inconvénient : une mise à jour différée.

    4a) Mise à jour par push, ton serveur oracle prépare une sql avec les données a importer, puis sur ton S1 tu lis le fichier dans une table temporaire avant traitement pour intégration. Avantage : pas de driver, indépendance des structures entre S1 et S2 ; inconvénient : développement plus lourd, développement sur les deux machines.

    4b) Mise à jour par aspiration, ton serveur S1 accède régulièrement et directement o S2 pour effectuer les mises à jour.


    Quel est ma solution préférée ? Si j'en ai les moyens ce serait la solution 2 qui garanti des données à jour et l'indépendance des serveurs, par contre il faut alors un serveur web sur S2 ce qui n'est pas le cas actuellement. Si non dans l'ordre la 4a et la 4b.

    Vu que tu ne souhaites pas toucher à S2, je pense que la 4b doit être la bonne.

    Va voir dans les forums sur les bases de données il doit y avoir des outils qui permettent d'automatiser et de largement simplifier la mise a jour en conservant au maximum l'indépendance des structures entre S1 et S2.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 131
    Par défaut
    Merci beaucoup pour cette réponse très précise ! Je vais me pencher sur ces solutions et y réfléchir. Effectivement la 4b semble pas mal.

    Merci encore.

Discussions similaires

  1. Réponses: 9
    Dernier message: 17/11/2006, 11h08
  2. [Oracle] Problème de connexion à une base Oracle
    Par Gigi31 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/06/2006, 17h49
  3. Réponses: 4
    Dernier message: 24/02/2006, 10h48
  4. Réponses: 4
    Dernier message: 02/01/2006, 16h58
  5. [Tomcat]Connexion à une DataSource Oracle
    Par iceman dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 04/08/2003, 16h48

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