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 :

connexion postgresql avec perl


Sujet :

SGBD Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut connexion postgresql avec perl
    Bonjour

    Je cherche à me connecter à une base de données postgtresql avec perl et j'ai le message d'erreur suivant:

    Couldn't connect to /tmp/.s.PGSQL.5432: at c:/Program Files/perl/site/lib/DBD/PgPP.pm line 124


    Mon fichier contient le code suivant:

    use strict;
    use CGI::Carp qw(fatalsToBrowser);
    use DBI;
    my $db = DBI -> connect("dbigPP:dbname=test","postgres","monpassword") || die $DBI::errstr;

    A noter que ça marche en php avec le code:
    $connection = pg_pconnect("dbname=test user=postgres password=monpassword");


    Merci d'avance

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Je me demande s'il n'y a pas un module DBD::postgtresql ?

    Tu as vérifié sur le CPAN ?

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    effectivement, il faut que tu installes le driver DBD:g

  4. #4
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    DBD::PgPP est le module pur perl pour se connecter à PostgreSQL (et là il a l'air de se mélanger les pinceau avec l'OS), as-tu essayé plutôt DBD::Pg (à installer avec "ppm install http://theoryx5.uwinnipeg.ca/ppms/DBD-Pg.ppd" par exemple) ?

    --
    Jedaï

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci pour vos reponses.

    En fait G installé perl avec activeperl, puis G installé DBD-PgPP avec perl package manager, car lui ne me propose pas l'install de DBD-Pg.
    Du coup G telechargé DBD-Pg-1.49, mais l'install pour windows est fastidieuse:

    Start with:
    MS VC++.Net Standard Edition
    MS VC++ Toolkit 2003...

    que je n'ai pas, donc si G bien compris il faut que j'installe ces 2 logiciels avant d'installer le Pg.

    Il n'y aurait pas une maniere plus simple d'installer Pg sur windows?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Oups excuses , j'avais pas vu:

    ppm install http://theoryx5.uwinnipeg.ca/ppms/DBD-Pg.ppd

    j'essaye et je reviens

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Je viens de faire l'install (cool je caonnaissais pas)et elle s'est apparemment bien passée (6 files installed), j'ai redemarré mon serveur local mais maintenant je me trouve avec une "500 Internal Server Error", G pas de bol ou quoi?

    Par contre si je remets dans mon code

    connect("dbigPP:

    au lieu de

    connect("dbig:

    je retourne à l'erreur de départ

    Couldn't connect to /tmp/.s.PGSQL.5432:

    qui a effectivement l'air de croire que mon OS n'est pas windows.

    A l'aide, et merci d'avance

  8. #8
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Tu peux exécuter le script une bonne fois en ligne de commande (avec Pg) et nous dire ce que tu obtiens.

    --
    Jedaï

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci Jedï, trop cool de m'aider.

    J'ai executé le script en ligne de commande et ça ne m'a pas retourné d'erreur.
    Du coup j'ai rajouté des lignes dans mon fichier test.pl qui est devenu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # !perl
     
    use DBI;
     
    my $db = DBI -> connect("dbi:Pg:dbname=test","postgres","pepe") || die $DBI::errstr;
     
    $req = $db->prepare("Select * from test") ;
    $req->execute() ;
    while (($id,$nom,$age)= $req->fetchrow_array())
    {
    print $id.’ | ’.$nom.’ | ’.$age."\n" ;
    }
    $db->disconnect() ;
    je l'execute en ligne de commande et là ça me sort:

    Unrecognized character \x92 at test.pl on line 11

    j'ai alors tenté de changer les ' par des " dans ma ligne 11 qui est devenue:

    print $id." | ".$nom." | ".$age."\n" ;

    et là ça ne me sort rien du tout (je pars de C:\>perl test.pl et j'arrive à C:\>)

    Je suis largué

  10. #10
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    merci de mettre ton code sous balise code pour la lisibilite.
    (tu le selectionnes et clique sur #)

    Merci

  11. #11
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Il y a bien des trucs dans ta table test ?

    Tu devrais tester la réussite de ton prepare() (encore qu'il a dû réussir, sinon tu aurais eu une erreur en essayant d'utiliser $req) et de ton execute().

    --
    Jedaï

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    (ok pour la lisibilité du code)

    Oui ma table contient bien des enregistrements, j'ai fait un select en ligne de commande et c'est bon.

    J'ai essayé de tester comme tu l'as dit (j'espere que ma syntaxe est bonne) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #!perl
     
    use DBI;
     
    my $db = DBI -> connect("dbi:Pg:dbname=test","postgres","pepe") || die $DBI::errstr;
     
    if($req = $db->prepare("select * from client"))
    	{
    	print "prepare ok \n";
    	}
    mais ça ne me retourne rien. J'suis degouté.

Discussions similaires

  1. Erreur de connexion Postgresql avec PHP
    Par gentil2005 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 01/11/2012, 18h12
  2. connexion PostgreSql avec VB
    Par Jertho dans le forum VBA Access
    Réponses: 1
    Dernier message: 26/08/2007, 17h54
  3. connexion PostgreSql avec Access et VB
    Par Jertho dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 19/08/2007, 22h35
  4. Connexion postGreSQL avec framework .NET
    Par Gobouz dans le forum Accès aux données
    Réponses: 2
    Dernier message: 22/06/2007, 10h43
  5. connexion persistante avec perl
    Par naourass dans le forum SGBD
    Réponses: 8
    Dernier message: 18/12/2006, 18h08

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