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 :

Windows, pb avec DBI et DBD::PgPP


Sujet :

SGBD Perl

Vue hybride

ramislebob Windows, pb avec DBI et... 04/08/2006, 11h53
Jedai C'est une bonne idée... 04/08/2006, 13h01
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Janvier 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 188
    Par défaut Windows, pb avec DBI et DBD::PgPP
    voilà, j'ai installé DBI et DBD-PgPP via ppm.
    lorsque je lance un script de connection à la base de donnée (PostGres 8.1) voilà l'erreur que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    E:\dvp>perl gilda.pl
    DBD::PgPP::st execute failed: ERROR:  syntax error at or near ")" at character 71
    Prepare Error: ERROR:  syntax error at or near ")" at character 71
     
    E:\dvp>
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    #!C:\Perl\bin\perl.exe
    use strict;
    use Data::Dumper;
    use DBI;
     
     
    use vars qw/
    $hostPostgres $portPostgres $userPostgres $passPostgres $database @tables $dbh @tables
    /; 
     
    $hostPostgres='localhost';
    $portPostgres='5432';
    $userPostgres='postgres';
    $passPostgres='myPass';
    $database='ConfigMGT';
     
    @tables=({'name'=>'Test','attribs'=>['id','name','param1','param2'],'nb'=>4},
    );
     
    &connectDB();
    &executeSql("INSERT INTO Test(id,name,param1,param2) VALUES (0,'nom1','seul param',)");
    my $cmd=&executeSql("SELECT DISTINCT * FROM Test ORDER BY name");
    while ( my @lines =$cmd -> fetchrow_array) {
        my $out="(";
        foreach (@lines){
     	$out.="$_,";
        }
        chop($out);
        $out.=")\n";
        print $out;
    }
    &disconnectDB();
    exit 0;
     
    sub connectDB(){ 
        unless(defined $dbh) {
    $dbh = DBI->connect(
          "dbi:PgPP:dbname=$database;host=$hostPostgres;port=$portPostgres",
          $userPostgres, $passPostgres
      );	
          warn "dbh is defined now :p\n";
        }
        else{
            warn "dbh already defined !\n";
        }
     
    }
     
    sub executeSql(){
        my $req=shift;
        &connectDB();
        my $cur=$dbh->prepare($req);
        $cur->execute();
        die "Prepare Error: $DBI::errstr" if $DBI::err;
        return $cur;
    }
     
    sub disconnectDB(){
        $dbh->disconnect() if (defined($dbh));
    }

    Comment puis je faire pour réussir à me connecter à une base postgres sous Windows ?
    help plz


    PS : voici ma version de PgPP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ppm> install DBD-PgPP
    ====================
    Install 'DBD-PgPP' version 0.05 in ActivePerl 5.8.8.817.
    ====================
    Downloaded 14763 bytes.
    Extracting 7/7: blib/arch/auto/DBD/PgPP/.exists
    Installing C:\Perl\html\site\lib\DBD\DBD-PgPP.ja.html
    Installing C:\Perl\html\site\lib\DBD\PgPP.html
    Installing C:\Perl\site\lib\DBD\DBD-PgPP.ja.pod
    Installing C:\Perl\site\lib\DBD\PgPP.pm
    Successfully installed DBD-PgPP version 0.05 in ActivePerl 5.8.8.817.
    ppm>

  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
    Citation Envoyé par ramislebob
    voilà, j'ai installé DBI et DBD-PgPP via ppm.
    lorsque je lance un script de connection à la base de donnée (PostGres 8.1) voilà l'erreur que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    E:\dvp>perl gilda.pl
    DBD::PgPP::st execute failed: ERROR:  syntax error at or near ")" at character 71
    Prepare Error: ERROR:  syntax error at or near ")" at character 71
     
    E:\dvp>
    C'est une bonne idée d'essayer de comprendre les message d'erreur tu sais ?
    Par exemple là il y a marqué que l'exécution de ta requête a échoué parce qu'il y a une erreur de syntaxe dedans, au caractère 71 plus exactement... Or qu'est ce que je vois au caractère 71 de ta première requête ? Une construction douteuse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    0,'nom1','seul param', ???? )
    --
    Jedaï

Discussions similaires

  1. Hebergement sur windows : probleme avec .htaccess
    Par linou dans le forum Hébergement
    Réponses: 5
    Dernier message: 17/03/2008, 13h31
  2. Petit probleme avec DBI
    Par cryptorchild dans le forum SGBD
    Réponses: 4
    Dernier message: 01/12/2005, 10h07
  3. Réponses: 7
    Dernier message: 10/11/2005, 14h12
  4. Installer le module DBI et DBD::MySQL
    Par piloupy dans le forum SGBD
    Réponses: 3
    Dernier message: 26/07/2005, 09h55
  5. [VB6] Gestionnaire des tache de windows 2000 avec VB6
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/11/2002, 08h21

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