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

JDBC Java Discussion :

recuperer un BLOB


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 57
    Points : 38
    Points
    38
    Par défaut recuperer un BLOB
    je souhaiterais recuperer un BLOB d'une base Fierbird. pour l'afficher sur ma page web. ce BLOB contient du text.
    une idée SVP??

  2. #2
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Ou as tu un probleme?
    As tu deja fait une requete pour récupérer ton object de type Blob?
    Si ce n'est pas deja fait essaye de le faire.

    Pour le reste tu devrais aller voir dans la FAQ JDBC, de souvenir tout est dedans!!

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 57
    Points : 38
    Points
    38
    Par défaut
    j'avais vu ce lien mais vu que ce n'est pas une image et que je veux le recupere dans ma page web...

    j'ai recuperé ce code sur la site de firebird...
    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
    Statement sment = conn.createStatement();
     
    String SQL = "SELECT DESCRIPTION FROM SERVICE_REQ WHERE PROBLEM_TYPE = 'Application'";
     
    ResultSet rs = sment.executeQuery(SQL);
    byte[] returndata = null;
    rs.next() ;
    ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
    BufferedInputStream bis = new BufferedInputStream(rs.getBinaryStream("DESCRIPTION"));
    byte bindata[1024];
    int bytesread = 0;
     
    if (!rs.wasNull()) 
    {
      if ( (bytesread = bis.read(bindata,0,bindata.length)) != -1 ) 
      {
          baos.write(bindata,0,bytesread);
      }
        else 
       {
          out.writes(baos.getBytes());
       }
    }
    mais j'ai un pb lors de l'instancialtion de bindata il n'accepte pas le "1024"
    et je n'arrive pas a l'initalisé

  4. #4
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    byte[] bindata = new byte[1024];

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 57
    Points : 38
    Points
    38
    Par défaut
    merci ca marche, je n'ai plus d'erreur
    mais rien ne s'affiche. le pb doit venir d'une de ces 2 lignes non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    baos.write(bindata,0,bytesread);
    out.writes(baos.getBytes());

  6. #6
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    C'est quoi cette condition:

    C'est pour quoi faire? A mon avis tu ferais mieux de l'enlever parce que je n'en vois pas l'utilité.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // tant que j'ai quelque chose dans mon bis j'écrit dans bytesRead
    while ( (bytesread = bis.read(bindata,0,bindata.length)) != -1 ) 
      {
          baos.write(bindata,0,bytesread);
      }
        //après on l'affiche à l'ecran
          System.out.println(baos.getBytes());
    J'ai fait ca a la volé j'espere que tu n'auras pas de pb a la compilation, sinon suffit de voir ce qui va pas et de l'adapter.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 57
    Points : 38
    Points
    38
    Par défaut
    hou. sa marche. merci beaucoup
    j'ai jute modifer la derniere ligne j'ai mis
    baos.toString() la methode getBytes n'etait pas connues.
    tu connais le difference?
    merci encore

  8. #8
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 57
    Points : 38
    Points
    38
    Par défaut
    j'ai un dernier petit pb les retour a la ligne sont remplacé par \r\n.

  9. #9
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Oui le toString te converti comme il y arrive ton texte dans le baos, donc normale que tu es \r\n a la place des retours a la ligne.



    Oui j'avais laisse getBytes car c'était dans le code que tu avais fourni, lol!
    Je viens de regarder, tu devrais utiliser toByteArray() plutot.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 57
    Points : 38
    Points
    38
    Par défaut
    j'ai esayer avec toByteArray mais apparamant il attend un int et pas un byte non?
    toByteArray ne sert pas a une nouvelle allocution memoire?
    j'ai essaye avec les paramettres d'encodement mais ca na pas marché non plus.

  11. #11
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    toByteArray te retourne un tableau de bytes
    selon l'api :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    toByteArray
     
    public byte[] toByteArray()
     
        Creates a newly allocated byte array. Its size is the current size of this output stream and the valid contents of the buffer have been copied into it.
     
        Returns:
            the current contents of this output stream, as a byte array.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 57
    Points : 38
    Points
    38
    Par défaut
    le serveur me revoit l'erreur suivante:
    The method write(int) in the type Writer is not applicable for the arguments (byte[])
    bizard pourtant je crois que j'ai importé tout ce qu'il faut.
    java.sql.*,org.firebirdsql.management.*,java.io.*

  13. #13
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Je sais pas ce que tu a ecris, mais ByteArrayOutputStream a deux methodes write :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     void 	write(byte[] b, int off, int len)
     void 	write(int b)
    Si tu passe un seul parametre, le compilateur attend un entier!

  14. #14
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Citation Envoyé par fernier
    j'ai esayer avec toByteArray mais apparamant il attend un int et pas un byte non?
    toByteArray ne sert pas a une nouvelle allocution memoire?
    j'ai essaye avec les paramettres d'encodement mais ca na pas marché non plus.
    Qu'est ce que tu racontes, je crois que tu ne sais pas vraiment ce que tu fais la==> Ouuuuuu Pas Bien!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     System.out.println(baos.toByteArray());

  15. #15
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 57
    Points : 38
    Points
    38
    Par défaut
    je crée un JSP alors le code ci-dessous n'est pas reconnu:
    System.out.println(baos.toByteArray());
    pour pouvoir afficher quelle que chose c'est:
    non?
    je pence avoir essaye toute les solutions mais je n'est pas trouvée la bonne.

  16. #16
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    dans les jsp c'est out.println(........) ==> sans System. devant!!

    T'aurais p'etre du commencer dans une console si tu ne connais pas ca aurait été plus simple que dans une jsp.

  17. #17
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 57
    Points : 38
    Points
    38
    Par défaut
    ba j'avais un exemple de JSP deja tout fait alors...
    ca m'affiche
    [B@1a13338
    bizar bizar!

  18. #18
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    [B@1a13338 est le bytecode de ton image.LOL.

    Il affiche exactement ce que tu lui as demande.

  19. #19
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Citation Envoyé par willoi
    [B@1a13338 est le bytecode de ton image.LOL.

    Il affiche exactement ce que tu lui as demande.
    => c'est pas une image c'est du texte ce qui n'a rien d'extraordinaire mais il ne cherche pas à comprendre (encore un qui croit que les bout de code tombé tout cru vont reussir a le faire devenir un super programmeur).

  20. #20
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 57
    Points : 38
    Points
    38
    Par défaut
    o je ne crois du tout j'essaie juste d'avoir un programme qui fonctionne.
    ce n'est pas parce que j'ai poser un msg ici que j'arrete de chercher de mon cote.

Discussions similaires

  1. [WD16] Recuperation champ blob
    Par debo41 dans le forum WinDev
    Réponses: 2
    Dernier message: 30/11/2012, 09h06
  2. Recuperer un Blob
    Par olibara dans le forum C#
    Réponses: 2
    Dernier message: 06/07/2009, 10h08
  3. [Oracle] recuperer donnee blob
    Par baznov dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/03/2009, 17h19
  4. Probleme de recuperation de BLOB
    Par shogoune dans le forum Hibernate
    Réponses: 0
    Dernier message: 18/12/2008, 18h23
  5. [VB] recuperer un blob dans une base
    Par estampille dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 31/01/2006, 12h44

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