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.
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