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 :

pbm avec dbi


Sujet :

SGBD Perl

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut pbm avec dbi
    Bonjour,
    pouvez vous m'aider à résoudre mon problème.
    Merci d'avance.
    j'essaye d'envoyer mes données à la BD mais j'ai cet erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DBD::mysql initialisation failed: Can't locate object method "driver" via package "DBD::mysql" at C:/perl/site/lib/DBI.pm line 782.
     
    Perhaps the capitalisation of DBD 'mysql' isn't right. at testtrt.pl line 15
    et voila ma ligne 15
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	my $db = DBI -> connect (("dbi:mysql:dbname=tdm;host=localhost;","chakri","farid")) or die "connection impossible!";
    merci beaucoup de votre aide

  2. #2
    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
    Citation Envoyé par mariafan
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	my $db = DBI -> connect (("dbi:mysql:dbname=tdm;host=localhost;","chakri","farid")) or die "connection impossible!";
    Trop de parenthèses !! Et un ";" au lieu d'un ":", je pense que l'erreur vient de cette substitution, réessaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $db = DBI->connect("dbi:mysql:dbname=tdm:host=localhost","chakri","farid") or die "connection impossible!";
    Sinon, est-il possible que tu aies oublié d'installer DBD::mysql ?

    --
    Jedaï

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    j'ai changer la ligne de la connexion avec celle que tu m'as posté => mais yjs le même pbm
    et au paravant avec ppm j'ai installer DBD-MYSQL
    me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBD-musql 3.002: up to date
    et je bloque la dans j'ai essayé de réinstaller perl dès le début mais tjs le meme pbm juste lorsque je veux transmettre des données à la BDD Mysql
    je vois pas detout le pbm

  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
    Et ta version de DBI ?

    --
    Jedaï

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    ma version de DBI est: DBI 1.56: up to date.
    j'ai beau essayé d''installer et de réinstaller le DBI mais sans résultat.
    est-ce c'est due à une incompatibilité ?
    ou dois-je aller travailler sur unix?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    j'ai beau cherché mais j'ai pas trouvé de réponse, peut etre c'est du à mon easyphp mon serveur Mysql et apache qui sont pas compatible??????
    est ce que devais-je mettre mon script dans la partie www ou dans la partie mysql de apache????
    je ne sais plus quoi faire help me

  7. #7
    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
    Personnellement ça marche (avec easyPHP). Néanmoins j'ai la version 4.004 de DBD::mysql que j'ai récupéré sur le repository ppm http://theoryx5.uwinnipeg.ca/ppms/package.xml , je te conseille de l'ajouter à ta liste de repository, la procédure est décrite dans notre FAQ.

    --
    Jedaï

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    Bonjour,
    depuis le 01/06 avec la réponse de Jedai, j'ai beau essayé mais sans résultat, j'ai l'impression que je suis maudit, perl ne veut pas de moi
    toujours la faute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: C:/PROGRA~1/EASYPH~1/www/tdm/TRAITE~1 C:/Program Files/LuckaSoft/EngInSite Perl Editor C:/Perl/site/lib C:/Perl/lib .) at (eval 4) line 3. Perhaps the DBD::mysql perl module hasn't been fully installed, or perhaps the capitalisation of 'mysql' isn't right. Available drivers: DBM, ExampleP, File, Proxy, SQLite, Sponge. at C:\PROGRA~1\EASYPH~1\www\tdm\TRAITE~1\testtrt.pl line 16
    et voila 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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    #!C:\Perl\bin\perl.exe
     
    use strict; 
    use warnings;
    use DBI;
    use DBD;
    use CGI;
     
    	my $basedir = 'C:/Program Files/EasyPHP1-8/www/tdm/traitement';
     
    	open my($src),'<', "$basedir/testsrc.txt"
    	   or die "E/S : $!\n";
     
    	#  open my($out), '>>', "$basedir/rslt.txt" or die "E/S : $!\n";
     
    	#connection to database
    my $db = DBI->connect("dbi:mysql:dbname=tdm:host=localhost","chakri","farid") or die "connection impossible!";
     
     
    	# liste des commandes
    	my @commands = qw(
     
    	  ALAIL
    	  ANOIL
    	  NSSIN
    	  SRFIL
    	  ESMIN
    	  GLRIL
    	  DMPIL
     
    	);
     
    	# construction de la regex pour reconnaître l'une de ces commandes en début de ligne (éventuellement après quelques espaces/tabulations)
    	# on capture la commande utilisée aspect final de la regex : m/^\s*(SRFIL|ESMIN|...|DMPIL)/
    	my $rx_string = join '|', map { quotemeta $_ } @commands;
    	my $rx_commands = qr/^\s*($rx_string)/;
     
     
    	# variable d'état pour savoir si l'on se trouve dans ule paragraphe qu'on veut imprimer ($in == 2), après une commande ($in == 1),
    	# ou en dehors de tout cela ($in == 0)
    	my $in = 0;
    	while(<$src>){
    	    if( not $in and my ($cmd) = (m/$rx_commands/) ) {
    	        #print $out "$cmd:\n\n";
    	        $in = 1;
    	    }
    	    elsif( $in == 1 and m/^\s*TRAITEMENT ...... ACC/ ) {
    	        $in = 2;
    	    }
    	# anaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa pour SRFIl
    		while($in == 2){
    			if(/(\d{2}\-\d{2}\-\d{2})\/(\d{2}\s+\w{1}\s+\d{2}\s+\w{2}\s+\d{2})\s+EVT=(.*)$/){
    				my $date = $1;
    				my $heure = $2;
    				my $evt = $3;
    					#print 'date: '.$date."\n"; 
    					#print 'heure: '.$heure."\n"; 
    					#print 'evt: '.$evt."\n"; 
     
    					$db->do("insert into srfil values ('$date', '$heure', '$evt');")|| die "pb de requete : $DBI::errstr";
    			}
    			elsif(/\/AM\s*=\s*([\w\d]+)\s*ETAT=(\w+)\s*AF\s*=\s*([\w\d]+)$/){
    				my $am = $1;
    				my $etat = $2;
    				my $af = $3;
    				$db->do("insert into srfil values ('$am', '$etat', '$af',);")|| die "pb de requete : $DBI::errstr";
    			}
    			elsif(/\/\s*([\s\d]+)$/)
    			#while(/\/\s*([\s\d]+)$/)
    			{
    				my $msg = $1;
    				$db->do("insert into srfil values ('$msg');")|| die "pb de requete : $DBI::errstr";
    			}
     
    	###  machi anaaaaaaaaaaaaaaaaaaaaaaaa	
    	    elsif( $in == 2 and m/^\s*TRAITEMENT ...... EXC/ ) {
    	        $in = 1;
    	       # print $out "\n\n";
    	    }
    	    elsif( $in == 2 ) {
    	        #print $out $_;
    			#!/usr/bin/perl
     
     
    	# send them to the database
    	# je dois définir quel table de destination
    		#$db->do("insert into srfil values ('$ct', '$date', '$heure', '$evt', '$am', '$etat', '$af', '$msg');")|| die "pb de requete : $DBI::errstr";
     
    	    }
    	}   
    	}
     
    	close $src;
    	#close $out;
    je chercher à capter des information d'un fichier .txt et les envoyer à la base de données.
    Merci de vouloir m'aider surtout qu eje suis bloké à mort.

    faut-il que je bascule sur ubuntu???

  9. #9
    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
    Et bien basculer sur Ubuntu serait une amélioration par rapport à Windows à mon avis, mais ce qui est certain c'est que DBD::mysql n'est pas installé, ou pas dans le @INC normal... (il n'est pas dans la liste des drivers accessibles)

    Pourquoi ? Aucune idée !

    Essaie de faire une recherche de "mysql.pm" pour voir s'il est au moins quelque part sur ton disque.

    --
    Jedaï

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    Bonjour,
    voila la recherche de mysql.pm je l'ai trouvé sur mon pc voila le chemin c:\perl\site\lib\Net\MySQL.pm

    et voila comment j'ai fais pour travailler sur perl
    d'abord j'ai installer esayphp 1.8 ou j'ai :
    serveur apche que j'utilise pour la partie web que je développe avec php.
    serveur Mysql pour ma base de données.

    et pour perle j'ai cherché sur internet ActivePerl-5.8.3.809.... je l'ai installé quand je lance un pgm en perl qui ne fais pas appel à la base de donnée, j'escute mon script sans pbm mais que je fais appel à la base de donnée bug
    Et j'utilise SannySoft Perl Editor 2006 pour exécuter les scripts
    est-ce qu'il faut que je met le contenu de perl dans le serveur ou dois-je configurer qqc de plus dans apache????
    aidez moi

    MERCI BEAUCOUP

  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
    Citation Envoyé par mariafan
    Bonjour,
    voila la recherche de mysql.pm je l'ai trouvé sur mon pc voila le chemin c:\perl\site\lib\Net\MySQL.pm
    Désolé, mais ceci n'est pas DBD::mysql, ce n'est pas le driver mysql pour DBI. Il semble que ce driver ne soit pas installé.

    Pour l'installer, tu devrais utiliser la commande suivante en ligne de commande :
    (la casse est importante)

    --
    Jedaï

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    bonjour
    voila lorsque je lance la commande pour installer le driver ce que j'ai en pièce jointe

  13. #13
    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
    Ok, donc ppm croit qu'il est installé, mais il ne l'est pas, essaie "uninstall DBD::mysql" puis de nouveau "install DBD::mysql".

    --
    Jedaï

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    voila je l'ai refais mais tjs le même msg

  15. #15
    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
    install DBD-mysql
    Par ailleurs as-tu désinstallé le module avant ?

    --
    Jedaï

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    lorsque je veux réinstaller DBD-mysql, je trouve already installed
    mais je 'ai pas désinstallé avant.
    je vais le faire et vous dire le résultat.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    Salut,
    j'ai tous désinstallé tout le perl, et après j'ai téléchargé la version 5.8.8. 820
    j'ai lancer mon script, voila le bug
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at (eval 4) line 3.
    Perhaps the DBD::mysql perl module hasn't been fully installed,
    or perhaps the capitalisation of 'mysql' isn't right.
    Available drivers: DBM, ExampleP, File, Proxy, SQLite, Sponge.
     at testtrt.pl line 15
    après j'ai ajouté le repository de theoryx5, puis j'ai lancer ça marche
    et enfin j'ai lancé mon script mais j'ai une nouvelle faute.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DBI connect('dbname=tdm:host=127.0.0.1','chakri',...) failed: Can't create TCP/IP socket (10106) at testtrt.pl line 15
    connection impossible! at testtrt.pl line 15.
    je comprend qu'il n'arrive pas à se connecter à la base de donneés mais je ne sais pas exactement qu'il est le pbm
    si vous voyez aidez moi.
    voila la ligne 15
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $db = DBI->connect("dbi:mysql:dbname=tdm:host=127.0.0.1","chakri","farid") or die "connection impossible!";
    merci beaucoup de votre aide.

  18. #18
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 563
    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 563
    Points : 2 003
    Points
    2 003
    Par défaut
    Citation Envoyé par mariafan
    voila la ligne 15
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $db = DBI->connect("dbi:mysql:dbname=tdm:host=127.0.0.1","chakri","farid") or die "connection impossible!";
    merci beaucoup de votre aide.
    Si tu rajoutais le contenu de la valeur $! dans ton die, tu aurais peut être une info sur la non connexion à ta base.

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    ok, mais je suis un débutant en perl alors voulez vous me dire où l'ajouter exactement ou même modifier la ligne

  20. #20
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 563
    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 563
    Points : 2 003
    Points
    2 003
    Par défaut
    Par rapport à ta ligne 15, elle devrait se terminer comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    or die "connection impossible : $!";

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Petit probleme avec DBI
    Par cryptorchild dans le forum SGBD
    Réponses: 4
    Dernier message: 01/12/2005, 11h07
  2. Etablir une connexion permanete avec dbi
    Par cryptorchild dans le forum SGBD
    Réponses: 2
    Dernier message: 28/11/2005, 21h42
  3. pbm avec setMinimumSize()
    Par toxyshow dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 26/11/2005, 19h30
  4. pbm avec les foreigns keys.....
    Par j_bonc dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 11/06/2004, 11h23
  5. Pbm avec les '&'...
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/08/2002, 12h08

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