GNT sans publicité, site mobile, fonctionnalitées exclusives...

Blob et mysql

Le
Pif
Bonjour, je crois que je vais mettre du temps pour survivre dans la
jungle de mysql

J'ai chopé le code suivant qui permet normalement de récupérer un blob
dans une table SQL :


InputStream blobStream=rs.getBinaryStream("str");
DataInputStream dis=new DataInputStream(blobStream);
byte[] blobvalue=new byte[100000];
dis.readFully(blobvalue);
System.out.println(new String(blobvalue));
dis.close();

systématiquement, j'ai une Exception EOF à la ligne du dis.readFully
le nom de mon champ est pourtant bon, il contient bien une valeur non
nulle, et j'ai bien un rs en cours non nul

quelqu'un peut il m'expliquer ou est mon erreur
Est-ce un problème de codage des caractères ? Existe-t-il une facon plus
légère de récupérer le contenu d'un blob ?

merci d'avance !


NB ; je sais qu'iil ne faudrait pas utiliser un blob mais c'est pas moi
qui ait fait la base , et je rale assez, c'est meme pas un informaticien
on dirait..
Lire les 3 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
  • de Blob fait un peu plus parler de lui à travers cette nouvelle vidéo. L'occasion de...
  • de Blob est un titre tout ce qu'il y a de plus original. Prévu pour septembre, il est...
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Stephane Zuckerman
Le #192765
NB ; je sais qu'iil ne faudrait pas utiliser un blob mais c'est pas moi
qui ait fait la base , et je rale assez, c'est meme pas un informaticien
on dirait..


Je ne sais pas résoudre ton problème, mais juste pour dire, si la donnée à
stocker n'est pas "human readable", le blob se justifie tout à fait...

--
"Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce
que je veux !"
"The obvious mathematical breakthrough would be development of an easy
way to factor large prime numbers." (Bill Gates, The Road Ahead)

Pif
Le #192764
NB ; je sais qu'iil ne faudrait pas utiliser un blob mais c'est pas moi
qui ait fait la base , et je rale assez, c'est meme pas un informaticien
on dirait..



Je ne sais pas résoudre ton problème, mais juste pour dire, si la donnée à
stocker n'est pas "human readable", le blob se justifie tout à fait...

elle est parfaitement human readable ! c'est justement ca qui est domage !



Frédéric Lachasse
Le #192663
"Pif"
Bonjour, je crois que je vais mettre du temps pour survivre dans la jungle
de mysql...

J'ai chopé le code suivant qui permet normalement de récupérer un blob
dans une table SQL :


InputStream blobStream=rs.getBinaryStream("str");
DataInputStream dis=new DataInputStream(blobStream);
byte[] blobvalue=new byte[100000];
dis.readFully(blobvalue);
System.out.println(new String(blobvalue));
dis.close();

systématiquement, j'ai une Exception EOF à la ligne du dis.readFully ...
le nom de mon champ est pourtant bon, il contient bien une valeur non
nulle, et j'ai bien un rs en cours non nul...

quelqu'un peut il m'expliquer ou est mon erreur ...
Est-ce un problème de codage des caractères ? Existe-t-il une facon plus
légère de récupérer le contenu d'un blob ?

merci d'avance !


D'abord, l'erreur: readFully() remplit le buffer (ici 100000 octets). Si ton
blob est plus petit, c'est une erreur (EOF).

Plusieurs solutions possibles. une des plus simple:

Blob blob = rs.getBlob();
byte[] blobvalue = blob.getBytes(0, blob.length());

--
Frédéric Lachasse - ECP86

Publicité
Suivre les réponses
Poster une réponse
Anonyme