module DBI

module DBI - Perl - Programmation

Marsh Posté le 17-11-2002 à 22:18:02    

Salut, je viens d'installer les modules DBI sur Active Perl, (par pmm), mais il ne les prend pas en compte et quand je lui demande le listing des driver, il me répond
 
Driver: ExampleP
        Data Source is dbi:ExampleP:dir=.
 
Driver: Proxy
install_driver(Proxy) failed: Can't locate RPC/PlClient.pm in @INC (@I
s: D:/perl/lib D:/perl/site/lib .) at D:/perl/site/lib/DBD/Proxy.pm li
BEGIN failed--compilation aborted at D:/perl/site/lib/DBD/Proxy.pm lin
Compilation failed in require at (eval 2) line 3.
Perhaps a module that DBD::Proxy requires hasn't been fully installed
 
Si qqn a une solution à me proposer, qu'il n'hésite pas à se manifester, je lui offre un paquet de fraises tagada (ou toute ma reconnaissance, au choix)

Reply

Marsh Posté le 17-11-2002 à 22:18:02   

Reply

Marsh Posté le 18-11-2002 à 08:28:18    

Le compilo semblant ne pas avoir trouvé où se cachaient PlClient.pm et Proxy.pm, fais une recherche dans le dossier Perl de ton ordi si tu as réellement ces deux packages.
 
A mon avis, ils manquent car en passant par une installation via PPM, ça se passe généralement très bien.


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 18-11-2002 à 08:36:19    

bah y'a bien proxy.pm, mais pas plclient.pm. Comment je peux procéder pour corriger sans passer par ppm?

Reply

Marsh Posté le 18-11-2002 à 09:05:22    

stphanie a écrit a écrit :

bah y'a bien proxy.pm, mais pas plclient.pm. Comment je peux procéder pour corriger sans passer par ppm?



quels sont les modules DBI que tu as installé ?
 
Il me semble que dans le zip DBI.zip dispo à http://www.activestate.com/PPMPack [...] ilds-only/, tu as tous les modules DBI dedans
 
Si tu as installé certains modules et pas d'autres, il se peut fort bien que ton package manquant se trouve dans un module que tu n'aurais pas installé


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 18-11-2002 à 12:15:09    

J'ai installé le package DBI qui se trouve sur le site activeperl. Je viens de réessayer en le téléchargeant d'abord sur le lien, au lien de lancer ppm directement, mais j'ai le même message

Reply

Marsh Posté le 18-11-2002 à 12:39:33    

stphanie a écrit a écrit :

J'ai installé le package DBI qui se trouve sur le site activeperl. Je viens de réessayer en le téléchargeant d'abord sur le lien, au lien de lancer ppm directement, mais j'ai le même message




 
Dans le lien suivant http://www.mail-archive.com/dbi-us [...] 14130.html, apparemment le pm manquant se trouverait dans

Code :
  1. Bundle::DBI

, va voir le lien ...
 
Et la doc du module ici http://testwww.ethz.ch/perldoc/RPC/PlClient.html
 
Tu auras peut être + d'infos sur le module dont est issu en principe ce pm


Message édité par Aricoh le 18-11-2002 à 12:40:52

---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 18-11-2002 à 12:40:16    

:hello:
DBI n'est qu'un moteur, si tu veux l'utiliser avec une base de données MySQL par exemple, il faut qu tu installe le module DBD-Mysql, pour pouvoir ensuite uiliser le driver MySQL avec DBI
 
PS: remplace MySQL par n'importekel autre BDD, c presque pareil :)


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 18-11-2002 à 12:41:41    

je sais, mais le pb avec le driver proxy ne risque pas de me'en empêcher?

Reply

Marsh Posté le 18-11-2002 à 18:02:30    

le driver proxy ??
ou ton proxy tout court ?   :heink:


Message édité par stef_dobermann le 18-11-2002 à 18:02:55

---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 18-11-2002 à 21:43:27    

le driver. C'est lui qui semble ne pas être installer correctement... :cry:

Reply

Marsh Posté le 18-11-2002 à 21:43:27   

Reply

Marsh Posté le 18-11-2002 à 21:48:21    

DBI = moteur
DBD-Mysql = driver
 
une fois que ta installé DBI il faut installer le driver
je voi pas ton PB, la


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 18-11-2002 à 21:58:30    

rhhhhhaaa, je sais pas comment m'expliquer tellement ça me soule... (le truc, pas ta réponse, hein) (c'est pour mes cours). Je reformule ma question: le package DBI ne s'installant pas correctement, puis-je malgré cela installer le DBD my-SQL?

Reply

Marsh Posté le 18-11-2002 à 22:34:00    

reinstall active perl
dis, ca serait pas la version 5.8 beta par hazard?
pasque si c'est le cas ce n'est pas etonnant: les modules du repository ppm qui ne sont pas pure perl ne sont pas encore compatible 5.8
faut reinstaller la 5.6 ans ce cas

Reply

Marsh Posté le 18-11-2002 à 22:46:22    

Non, ActivePerl-5.6.1
Savez quoi? je déteste ce machin. :fou:

Reply

Marsh Posté le 19-11-2002 à 08:43:16    

stphanie a écrit a écrit :

Non, ActivePerl-5.6.1
Savez quoi? je déteste ce machin. :fou:  



:pt1cable: tout d'suite les grands maux !  :D
 
2 petites questions :
 
1) ton SGBD, c'est lequel au juste ?
 
2) dans ton script .pl, montre-nous les pragmas, modules et autres packages que tu utilises


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 19-11-2002 à 12:32:52    

alors, je m'explique. J'étudie le TAL, et le but de la manoeuvre est : étiqueter un lexique de 300000 mots en donnant à chacun ses attributs grammaticaux grâce à un script perl, puis envoyer le taggeur ainsi constitué vers une base de données MySQL sur free. Jusque là, tout va bien. Le script perl qui va faire tout ça n'est pas encore au point (on le travaille en commun), mais en attendant, nous devons installer le module DBI fourni par activeperl, ce que j'ai fait. Nous devons donc utiliser un script pour vérifier  l'installation, et ce script est le suivant:

Code :
  1. #!/usr/bin/perl -w
  2. use DBI;
  3. @drivers = DBI->available_drivers();
  4. foreach $driver ( @drivers ) {
  5.     print "Driver: $driver\n";
  6.     @dataSources = DBI->data_sources( $driver );
  7.     foreach $dataSource ( @dataSources ) {
  8.         print "\tData Source is $dataSource\n";
  9.     }
  10.     print "\n";
  11. }
  12. exit;


 
Il est censé nous fournir un listing, or je ne récupère que le message cité plus haut...
valà valà. Dois-je me reconvertir vers des études de sanskrit? Soyez francs

Reply

Marsh Posté le 19-11-2002 à 12:48:47    

Bon déjà, pour que ton futur script Perl puisse bosser en direct live avec MySql, il te faut le zip suivant :
 
http://www.activestate.com/PPMPack [...] -Mysql.zip
 
une question au passage : j'ai vu que tu es sous 5.6.1, as-tu bien downloadé le module DBI pour version 6xx ???
 
Dans ton code, tu devras faire les déclarations suivantes :
 

Code :
  1. use DBI;
  2. use DBD::Mysql;


 
Pour en revenir à ton code ... Argllll ! Encore qq qui n'utilise pas Strict.pm, bouhhhhhhhhhh  :whistle:  
 

Code :
  1. ]#!/usr/bin/perl -w
  2. use strict;
  3. use DBI;
  4. my @drivers = DBI->available_drivers();
  5. foreach my $driver ( @drivers ) {
  6.    print "Driver: $driver\n";
  7.    my @dataSources = DBI->data_sources( $driver );
  8.    foreach my $dataSource ( @dataSources ) {
  9.        print "\tData Source is $dataSource\n";
  10.    }
  11.    print "\n";
  12. }


 
Dans ton code, je vois 2 méthodes DBI qui sont appelées (available_drivers et data_sources). Essaie donc d'évaluer ces 2 appels à DBI et teste ensuite si le retour d'eval a généré une erreur. Ton code ainsi modifié et évalué donne :
 

Code :
  1. ]#!/usr/bin/perl -w
  2. use strict;
  3. use DBI;
  4. my @drivers;
  5. eval { @drivers = DBI->available_drivers(); }
  6. if ($@) {
  7.     print "eval pas good : $@\n"
  8.     die();
  9. }
  10. foreach my $driver ( @drivers ) {
  11.    print "Driver: $driver\n";
  12.    my @dataSources;
  13.    eval { @dataSources = DBI->data_sources( $driver ); }
  14.    if ($@) {
  15.       print "eval pas good : $@\n"
  16.       die();
  17.    }
  18.    foreach my $dataSource ( @dataSources ) {
  19.        print "\tData Source is $dataSource\n";
  20.    }
  21.    print "\n";
  22. }


 
Heu, zut ! Ton code, il compile toujours pas ??? Si c'est l'cas, me voilà bien rendu avec mon message  :heink:


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 19-11-2002 à 13:38:40    

ok, merci bcp je vais faire tout ça. :jap:  :jap:  :jap:  
Mais, histoire, d'avoir un peu moins l'air d'une brebis galeuse, je précise que j'utilise tjs strict.pm :love: .  
S'il n'apparait pas ici, c'est uniquement parce que c'est un script qui nous a été donné tout fait (copier/coller, mon ami!)

Reply

Marsh Posté le 19-11-2002 à 17:38:26    

aaaaaaaaaaaaaaaaa
je capte pas, je te dit qu'il faut que tu installe le module DBD-mysql et tu ne m'ecoute tj pas je capte pas !! :heink:  
et la aricoh (sympa comme tout) te dit la meme chose mes avec du code  
 pour voir les driver DBI, il faut les installer !!
 


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 19-11-2002 à 17:47:41    

donc pour info, ton code est bon, mais (je viens de le tester) ne fonctionne pas car il manque un autre Package (qu'utilise DBI) mais qui n'est pas fournit avec (DBI)
 
mais d'apres le message d'erreur, il s'agit d'un probleme au niveau du package proxy.pm ligne 28
 

Code :
  1. install_driver(Proxy) failed: Can't locate RPC/PlClient.pm in @INC (@INC contains: C:/perl/lib C:/perl/site/lib .) at C:/perl/site/lib/DBD/Proxy.pm line 28.
  2. BEGIN failed--compilation aborted at C:/perl/site/lib/DBD/Proxy.pm line 28.
  3. Compilation failed in require at (eval 2) line 3.
  4. Perhaps a module that DBD::Proxy requires hasn't been fully installed
  5. Driver: ExampleP
  6. Data Source is dbi:ExampleP:dir=.
  7. Driver: Proxy


 
et j'ai installer DBI et DBD-MySQL, qui fonctionne correctement puisque je l'utilise pour me connecter à une DB sur mon serveur perso ;)


Message édité par stef_dobermann le 19-11-2002 à 17:49:21

---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 19-11-2002 à 17:50:40    

Aricoh a écrit a écrit :

 
 

Code :
  1. ]#!/usr/bin/perl -w
  2. use strict;
  3. use DBI;
  4. my @drivers;
  5. eval { @drivers = DBI->available_drivers(); }
  6. if ($@) {
  7.     print "eval pas good : $@\n";
  8.     die();
  9. }
  10. foreach my $driver ( @drivers ) {
  11.    print "Driver: $driver\n";
  12.    my @dataSources;
  13.    eval { @dataSources = DBI->data_sources( $driver ); }
  14.    if ($@) {
  15.       print "eval pas good : $@\n";
  16.       die();
  17.    }
  18.    foreach my $dataSource ( @dataSources ) {
  19.        print "\tData Source is $dataSource\n";
  20.    }
  21.    print "\n";
  22. }


 




 
avec les truc en rouge c mieu ;)


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 19-11-2002 à 19:03:11    

C'est pas que je ne t'écoute pas, je t'ai juste demandé si ça n'allait pas posé de pb viv à vis du DBI  :na:  
Mais je fais totalement confiance à tes compétences, et puisque tu me dis que non, je m'empresse de souscrire à ta solution :jap:  
Fort aimable à toi, amssi, et tout et tout.  
Au fait, fraises tagada ou reconnaissance éternelle?

Reply

Marsh Posté le 19-11-2002 à 21:17:06    

chuis un gourmand fraises, mais ignorant ( tagada :??: )
 
sinon, avant de me remercier, de moi si ca marche ?
apres on verra pour un RDV !!  :lol:


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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