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

SGBD Perl Discussion :

[PERL] DBI DBD::ORACLE compatibilite Windows Unix


Sujet :

SGBD Perl

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2004
    Messages : 201
    Par défaut [PERL] DBI DBD::ORACLE compatibilite Windows Unix
    Bonjour,

    Existe-t-il un module compatible à la fois pour Windows et Unix pour accéder à Oracle depuis Perl. J'ai besoin de cela car je développe un outils qui doit tourner sur les 2 systemes sans installation préalable de ces modules.

    Merci de vos réponses

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    DBI et DBD::Oracle fonctionne sous Unix comme sous Windows. Tu ne peux pas créer de programme qui fonctionne à la fois sous Windows ou Linux sans installation préalable, ou alors il faut que tu mettes une version des modules pour chaque système et que tu choisisses lors de l'exécution du programme selon le système où il se trouve ($^O).
    Précise un peu ce que tu veux faire.

    --
    Jedaï

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2004
    Messages : 201
    Par défaut
    Oui c'est bien ca, j'inclus les modules nécessaires dans un dossier lib pour le redistribuer. J'ai fais cela pour plusieurs modules déja (XMLWriter notamment) qui sont compatible windows et unix. Et donc c'est ce que je recherchais de savoir s'il existait un module généric au lieu davoir 2 dossiers (un pour windows et un pour unix).

    Au lancement de mon programme je charge les modules nécessaires en ajoutant les paths a @INC

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par theyankee76
    Oui c'est bien ca, j'inclus les modules nécessaires dans un dossier lib pour le redistribuer. J'ai fais cela pour plusieurs modules déja (XMLWriter notamment) qui sont compatible windows et unix. Et donc c'est ce que je recherchais de savoir s'il existait un module généric au lieu davoir 2 dossiers (un pour windows et un pour unix).
    Il n'est pas possible d'avoir un module générique car il y a une partie en C dans ces modules de façon à avoir des performances décentes et à se lier à la librairie de la base de donnée. Je suppose qu'on pourrait écrire un module pour se servir des clients en ligne de commande d'une BDD, mais tu n'aimerais pas les performances qui en résulterait, crois-moi !!

    --
    Jedaï

  5. #5
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par theyankee76
    Au lancement de mon programme je charge les modules nécessaires en ajoutant les paths a @INC
    Il serait préférable d'utiliser le pragma 'lib'.

    --
    Jedaï

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2004
    Messages : 201
    Par défaut
    Citation Envoyé par Jedai
    Il n'est pas possible d'avoir un module générique car il y a une partie en C dans ces modules de façon à avoir des performances décentes et à se lier à la librairie de la base de donnée. Je suppose qu'on pourrait écrire un module pour se servir des clients en ligne de commande d'une BDD, mais tu n'aimerais pas les performances qui en résulterait, crois-moi !!

    --
    Jedaï
    Nan ca m'interesse pas ta solution, étant donner que la plupart du temps les bases de données sont à distances, donc il n'y a pas forcément de clients dispo sur la machine

  7. #7
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Si tu utilisais MySQL encore, il y aurait l'option d'utiliser DBI::PurePerl et DBD::mysqlPP, ce serait lent mais possible, mais il n'y a pas de driver pur perl pour Oracle, c'est DBD::Oracle ou rien (ou Oracle::sqlldr dont tu m'as déjà dit que tu ne voulais pas).
    Comme je te l'ai dit, tu peux distribuer plusieurs versions (pour plusieurs plateformes) des modules avec ton outil et choisir la bonne lors de l'exécution de ton script Perl, c'est possible, et ce n'est même pas très difficile, il suffit par exemple de faire un répertoire lib/Linux et un lib/Windows et de mettre les modules qui dépendent de la plateforme dedans et de rajouter le bon dans @INC au début du script. Même si j'estime qu'il serait bien plus efficace d'offrir un installateur différent selon les plateformes.

    --
    Jedaï

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2004
    Messages : 201
    Par défaut
    C'est exactement ce que je compte faire (plusieurs répertoires). Quand à plusieurs versions selon les plateformes ce n'est pas possible. C'est d'ailleurs pour avoir un outil multi plateforme qu'il est développé en Perl. Je trouve juste dommage que des librairies 100 % perl n'existe pas.

    Merci de ton aide en tout cas.

  9. #9
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par theyankee76
    C'est exactement ce que je compte faire (plusieurs répertoires). Quand à plusieurs versions selon les plateformes ce n'est pas possible. C'est d'ailleurs pour avoir un outil multi plateforme qu'il est développé en Perl. Je trouve juste dommage que des librairies 100 % perl n'existe pas.

    Merci de ton aide en tout cas.
    Des librairies 100% Perl existent dans beaucoup de domaines, néanmoins tu dois bien te rendre compte que ton application est multiplateforme, tu peux l'utiliser sur n'importe quelle plateforme à partir du moment que Perl y est disponible, et les modules nécessaires compilables. C'est simplement parce que tu essaies de tout rassembler dans un seul paquetage que tu te retrouves avec de tels problèmes... Tu aurais le même avec les autres langages "multiplateformes".

    J'aimerais bien savoir néanmoins pourquoi plusieurs versions où seuls les modules embarqués diffèrent ne sont pas envisageables... C'est la solution adoptée à 99,9% par les entreprises sérieuses.

    --
    Jedaï

  10. #10
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2004
    Messages : 201
    Par défaut
    J'ai pas dis que ce n'était pas envisageable puisque c'est ce que je vais faire (à ceci près que je n'aurai qu'une version englobant les modules de l'ensemble des os). C'est juste que j'aurai préféré n'avoir qu'une version de chaque module, mais je me résout à 2 versions au minimum (certainement 4 à la finale).

  11. #11
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    salut,

    si ca peut t'aider, j'utilise un exe qui s'appelle PERL2EXE, et en utilisant un simple bat derrière, avec le même script je compile pour Win32,Aix ou sun
    la lib de base pour accéder a oracle est le module DBI

    pour info, sur un aix, j'ai réalisé un loader pour une base oracle sous suse et ca fonctionne impec (+de 50 millions de lignes)

    @echo off

    set SRC_PATH=%cd%
    set PERL2EXE_USER=xxxxx
    set PERL2EXE_PASS=xxxx
    set SCRIPT=monsource

    echo Compilation du script %SCRIPT% pour la plateforme AIX...
    cpau -u %PERL2EXE_USER% -p %PERL2EXE_PASS% -ex "perl2exe -platform=AIX -tiny %SRC_PATH%\%SCRIPT%.pl" -wait -lwp
    echo Déplacement des binaires...
    xcopy /E/Y/Q %SRC_PATH%\%SCRIPT% %SRC_PATH%\..\bin\aix
    xcopy /E/Y/Q %SRC_PATH%\*.so %SRC_PATH%\..\bin\aix
    del %SCRIPT%
    del *.so
    echo ------------------------------------

    echo Compilation du script %SCRIPT% pour la plateforme Win32...
    cpau -u %PERL2EXE_USER% -p %PERL2EXE_PASS% -ex "perl2exe -platform=Win32 -tiny %SRC_PATH%\%SCRIPT%.pl" -wait -lwp
    echo Déplacement des binaires...
    xcopy /E/Y/Q %SRC_PATH%\%SCRIPT%.exe %SRC_PATH%\..\bin\win32
    xcopy /E/Y/Q %SRC_PATH%\*.dll %SRC_PATH%\..\bin\win32
    del %SCRIPT%.exe
    del *.dll
    echo ------------------------------------

    :echo Compilation du script %SCRIPT% pour la plateforme SunOS...
    :cpau -u %PERL2EXE_USER% -p %PERL2EXE_PASS% -ex "perl2exe -platform=SunOS -tiny %SRC_PATH%\%SCRIPT%.pl" -wait -lwp
    :echo Déplacement des binaires...
    :xcopy /E/Y/Q %SRC_PATH%\%SCRIPT% %SRC_PATH%\..\bin\sun
    :xcopy /E/Y/Q %SRC_PATH%\*.so %SRC_PATH%\..\bin\sun
    :del %SCRIPT%
    :del *.so

Discussions similaires

  1. Strawberry, DBI, DBD-ORACLE installation.
    Par Lapince dans le forum Modules
    Réponses: 0
    Dernier message: 10/10/2012, 15h06
  2. Compatibilite windows unix
    Par delta07 dans le forum Langage
    Réponses: 4
    Dernier message: 26/05/2011, 11h51
  3. Compatibilité Windows> Unix
    Par thanks33 dans le forum Débuter
    Réponses: 3
    Dernier message: 03/07/2009, 10h16
  4. Substituer sqlplus par un script perl DBD::Oracle
    Par Konrad Florczak dans le forum SGBD
    Réponses: 2
    Dernier message: 19/01/2007, 14h50
  5. Script oracle pour windows & unix
    Par ALLFA dans le forum Oracle
    Réponses: 2
    Dernier message: 05/07/2005, 14h52

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