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 :

Problèmes lecture/écriture bytea avec Postgresql


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Problèmes lecture/écriture bytea avec Postgresql
    Bonjour,

    J'ai un soucis dans la récupération d'une colonne de bytea provenant d'une base postgresql.

    En effet j'insere l'element grace au code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    reparedStatement ps = connexion.getConnection().prepareStatement(requete);
    			ps.setBytes(1,currentLine.getBytes());
    ici mon currentLine.getBytes() correspond bien au string courant.


    Puis au moment de la recuperation en base de cet element :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    byte[] docBytes = resultat.getBytes(1);
    ou 1 correspond a la colonne souhaitée, le tableau de bytes est different par rapport au currentLine.getBytes() vu plus haut. Donc le string généré est différents.

    Je ne voit pas pourquoi cette difference existe, d'autant que je me suis inspiré d'un tutoriel postgresql/java.

    Par exemple pour la chaine de caractere "hehohahihuhy" :

    en entrée mon tableau de bytes = [104, 101, 104, 111, 104, 97, 104, 105, 104, 117, 104, 121, 47, 110]

    et en sortie = [56, 54, 53, 54, 56, 54, 102, 54, 56, 54, 49, 54, 56, 54, 57, 54, 56, 55, 53, 54, 56, 55, 57, 50, 102, 54, 101]

    Est-ce que quelqu'un a deja rencontré ce type de problème?

  2. #2
    Membre averti
    Avatar de Heavy Metal Hero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2007
    Messages : 152
    Points : 333
    Points
    333
    Billets dans le blog
    13
    Par défaut
    Le même problème m'est arrivé lorsque je suis passé de PG8 à PG9. J'enregistrais 319 bytes pour en récupérer 637, soit deux fois plus, tout comme toi.

    En fait les bits sont de type bytea dans la base. La représentation de ce type dans la base est différente depuis PG9. PG9 a introduit un nouveau format: "hex". Ce format est différent du vieux "escape" que les anciennes versions utilisent. C'est le problème, on enregistre les données dans la base, on s'attend à les retrouver en "escape" quand on les récupère, mais elle sont alors dans le format "hex".

    Je pense que c'est le signe que ton driver jdbc n'est pas de la même version postgreSQL que ta base. Peut-être que ta base est en PG9 mais que tu utilise un jar PG8

  3. #3
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 251
    Points : 192
    Points
    192
    Par défaut
    La question qui me vient à l'esprit est :

    Pourquoi donc stocker des chaines de caractères en BYTEA ?

    Le type TEXT est fait pour cela...

Discussions similaires

  1. [libsndfile] problème lecture/écriture
    Par olivier.a dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 24/05/2011, 21h24
  2. Problème lecture écriture par bloc dans un fichier
    Par scary dans le forum Débuter
    Réponses: 5
    Dernier message: 22/04/2009, 19h28
  3. Problème lecture de tables avec données type Oui/non
    Par Alixe80 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/04/2008, 17h44
  4. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  5. [communication série] problème lecture/écriture
    Par davinout dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 01/06/2005, 13h14

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