Perl DBI

Le
Frantz Dorsemaine
Bonjour,

J'ai des probleme pour récupérer des données dans mas base MySql sur des
champs de type LONGBLOB a partir d'un certain volume, donc je ne peu pas
reconstituer mon fichier.

J'utilise DBD-mysql

Pour les fichiers de petite taille (environ <500k), j'arrive a les
reconstituer sur mon HDD et les exploiter.

J'ai effectué un controle de la taille des données dans ma base à l'aide
de PHPMyAdmin, il font exactement la taille des fichiers sur mon disque.

Se sont tous des fichier zipé à l'origine.

Voici ma methode de récupération des LONGBLOB

open f_out, ">$Para{Tmp}/$file" $file: $!");
binmode(f_out);

my $RqtDumpPieceJointe=$Base->prepare("SELECT Document
FROM tb_piece_jointe
WHERE Id_Piece = '$Id'
");
$RqtDumpPieceJointe->execute;

my($Contenu)=$RqtDumpPieceJointe->fetchrow();
print f_out $Contenu;
close f_out;

Pas de message d'erreur sauf ceci :
int int23 at c:/Perl/site/lib/Net/MySql.pm line 601

Mon fichier fait environ 300k à l'arrivé au lieu de 2MO et quelque.

J'ai essayer aussi du dump_result mais c'est pire.

Le seul truc qui marche c'est ceci

SELECT Document
INTO DUMPFILE 'fic.zip'
FROM tb_piece_jointe
WHERE Id_Piece = '51'
INTO DUMPFILE '$file'

Le probleme c'est que le fichier fic.zip atteri sur le serveur et non sur
le poste qui effectu la requête.

Merci pour votre aide, je craque.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jogo
Le #140237
Sur fr.comp.lang.perl, Frantz Dorsemaine disait :

J'utilise DBD-mysql
[snip]
Pas de message d'erreur sauf ceci :
int int23 at c:/Perl/site/lib/Net/MySql.pm line 601


Ça me paraît bizarre : normalement DBD::MySQL utilise libmysql et non
pas Net::MySQL.

Merci pour votre aide, je craque.


Bon courage

--
"My life is a soap opera, but who has the rights?"
-- MadameX

Frantz Dorsemaine
Le #140236
Jogo news::

Sur fr.comp.lang.perl, Frantz Dorsemaine disait :

J'utilise DBD-mysql
[snip]
Pas de message d'erreur sauf ceci :
int int23 at c:/Perl/site/lib/Net/MySql.pm line 601


Ça me paraît bizarre : normalement DBD::MySQL utilise libmysql et non
pas Net::MySQL.

Merci pour votre aide, je craque.


Bon courage



Je ne suis pas sur que le message int int23 soir un ssage d'erreur mais
peut être un warning


Jogo
Le #140235
Sur fr.comp.lang.perl, Frantz Dorsemaine disait :

J'utilise DBD-mysql
[snip]
Pas de message d'erreur sauf ceci :
int int23 at c:/Perl/site/lib/Net/MySql.pm line 601


Ça me paraît bizarre : normalement DBD::MySQL utilise libmysql et
non pas Net::MySQL.


Je ne suis pas sur que le message int int23 soir un ssage d'erreur
mais peut être un warning


Oui mais le module Net::MySQL ne devrait même pas être chargé.

--
Le sujet ne satisfait pas simplement un désir, il jouit de désirer,
et c'est une dimension essentielle de sa jouissance.
- J. Lacan - Le Séminaire -



Mark Clements
Le #140231
Frantz Dorsemaine wrote:
Bonjour,

J'ai des probleme pour récupérer des données dans mas base MySql sur des
champs de type LONGBLOB a partir d'un certain volume, donc je ne peu pas
reconstituer mon fichier.

J'utilise DBD-mysql

Pour les fichiers de petite taille (environ <500k), j'arrive a les
reconstituer sur mon HDD et les exploiter.

J'ai effectué un controle de la taille des données dans ma base à l'aide
de PHPMyAdmin, il font exactement la taille des fichiers sur mon disque.

Se sont tous des fichier zipé à l'origine.

Voici ma methode de récupération des LONGBLOB

open f_out, ">$Para{Tmp}/$file" $file: $!");
cette ligne ne compile pas. Vous avez copié et collé le programme?



open f_out, ">$Para{Tmp}/$file" or die "$file: $!";

binmode(f_out);

Vous obtenez $Base comment?


my $RqtDumpPieceJointe=$Base->prepare("SELECT Document
FROM tb_piece_jointe
WHERE Id_Piece = '$Id'
");
$RqtDumpPieceJointe->execute;

my($Contenu)=$RqtDumpPieceJointe->fetchrow();
print f_out $Contenu;
close f_out;

Pas de message d'erreur sauf ceci :
int int23 at c:/Perl/site/lib/Net/MySql.pm line 601

Mon fichier fait environ 300k à l'arrivé au lieu de 2MO et quelque.


Sur Windows? Peut-être il faut utiliser binmode.

perldoc -f binmode

Mark

Frantz Dorsemaine
Le #141965
Mark Clements news:45ee6c82$0$27367$:

Frantz Dorsemaine wrote:
Bonjour,

J'ai des probleme pour récupérer des données dans mas base MySql sur
des champs de type LONGBLOB a partir d'un certain volume, donc je ne
peu pas reconstituer mon fichier.

J'utilise DBD-mysql

Pour les fichiers de petite taille (environ <500k), j'arrive a les
reconstituer sur mon HDD et les exploiter.

J'ai effectué un controle de la taille des données dans ma base à
l'aide de PHPMyAdmin, il font exactement la taille des fichiers sur
mon disque.

Se sont tous des fichier zipé à l'origine.

Voici ma methode de récupération des LONGBLOB

open f_out, ">$Para{Tmp}/$file" $file: $!");
cette ligne ne compile pas. Vous avez copié et collé le programme?



open f_out, ">$Para{Tmp}/$file" or die "$file: $!";

binmode(f_out);

Vous obtenez $Base comment?


my $RqtDumpPieceJointe=$Base->prepare("SELECT Document
FROM tb_piece_jointe
WHERE Id_Piece = '$Id'
");
$RqtDumpPieceJointe->execute;

my($Contenu)=$RqtDumpPieceJointe->fetchrow();
print f_out $Contenu;
close f_out;

Pas de message d'erreur sauf ceci :
int int23 at c:/Perl/site/lib/Net/MySql.pm line 601

Mon fichier fait environ 300k à l'arrivé au lieu de 2MO et quelque.


Sur Windows? Peut-être il faut utiliser binmode.

perldoc -f binmode

Mark



Cela venait du drivers DBD::mysqlPP, c'est ok avec DBI::mysql


Publicité
Poster une réponse
Anonyme