[Résolu][Perl][PostgreSQL] Problème d'installation DBI

Problème d'installation DBI [Résolu][Perl][PostgreSQL] - Perl - Programmation

Marsh Posté le 15-07-2009 à 17:27:11    

Bonjour à tous,  
 
Je découvre depuis quelques jours le monde merveilleux du Perl et je tente de me connecter à une base PostgreSQL depuis l'un de mes scripts Perl.
 
Ma config :
Perl 5.10
PostgreSQL 8.3 et 8.4
Windows XP / 2003 Server
 
Je sais qu'il faut installer un module via ppm install xxx
 
Donc je lance cette commande : ppm install http://pgfoundry.org/frs/download. [...] rl5.10.ppd
(Testé avec et sans le package SSL donc même problème).
 
Commande qui me sort une installation correcte :

Code :
  1. Downloading DBD-Pg-2.10...done
  2. Unpacking DBD-Pg-2.10...done
  3. Generating HTML for DBD-Pg-2.10...done
  4. Updating files in site area...done
  5.    10 files installed


 
Mais lorsque je tente de me connecter à ma base dans le script, je me prends une erreur :

Code :
  1. install_driver(Pg) failed: Can't load 'C:/Perl/site/lib/auto/DBD/Pg/Pg.dll'for module DBD::Pg: load_file:Le module spécifié est introuvable at
  2. C:/Perl/lib/DynaLoader.pm line 202.
  3. at (eval 4) line 3
  4. Compilation failed in require at (eval 4) line 3.


 
Mes quelques lignes de connexion :

Code :
  1. use DBI;
  2. my $host = "xxxxx";
  3. my $port = "xxxxx";
  4. my $dbname = "xxxxx";
  5. my $db = DBI->connect("dbi:Pg:dbname=$dbname;host=$host;port=$port", 'xxxxx', 'xxxxx', {AutoCommit => 0});


 
Quelqu'un a t'il déjà rencontré ce problème ? Ai je loupé une étape ?
 
Merci :D


Message édité par Profil supprimé le 17-07-2009 à 14:19:56
Reply

Marsh Posté le 15-07-2009 à 17:27:11   

Reply

Marsh Posté le 16-07-2009 à 10:36:25    

Bonjour,
Il me semble qu'il faut spécifier le driver à utiliser pour la connexion à la base de données, dans ton cas ce serait :

Code :
  1. use DBI;
  2. use DBD::Pg;
  3. my $host=...
  4. ...


Normalement ça devrait fonctionner avec ça  :jap:

Reply

Marsh Posté le 16-07-2009 à 11:08:04    

Merci pour la réponse mais il semble que le problème ne vienne pas de la.
 
En executant un script Perl "con" qui ne fait que se connecter à la base et en le lancant directement j'ai des erreurs de type :
 
MSVCR80.dll introuvable
 
Bon ok soit, je rajoute cette dll dans windows ... et je relance le script et nouvelle erreur :
 
http://img263.imageshack.us/img263/7773/tempx.jpg
 
Ca vient à priori d'une erreur de makefile sous Visual Studio 2005 ... blablabla
La je seche un peu ... Installer tout un environnement de dev pour compiler "a la mano" le driver, n'est pas une solution viable :/
Personne à tenter d'acceder à une base PostgreSQL depuis du perl ?  :heink:  
 
 

Reply

Marsh Posté le 17-07-2009 à 11:39:34    

Euh, rassures moi: c'est bien le perl gratos d'active state que tu utilises?
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 17-07-2009 à 14:18:59    

Oui, j'utilise bien le Perl d'Active state.
 
En désinstallant Perl, en le réinstallant et en récupérant les modules via l'interface graphique de ppm (et pas directement via la commande ppm install [url]), ça remarche.
 
Donc je vais pas chercher à comprendre la raison du pourquoi. En trainant sur le net, j'avais vu que j'étais pas le seul dans ce cas et les methodes de pseudo-résolutions étaient toutes plus ou moins tordues.

Reply

Marsh Posté le 17-07-2009 à 15:35:24    

Oui, il faut passer par leur install graphique. Dans de rares cas, j'ai eu à passer par ppm en command line, mais c'est relativement rare.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed