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 :

insertion caracteres BLOB


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 128
    Points : 52
    Points
    52
    Par défaut insertion caracteres BLOB
    Bonjour,
    j ai une BD Mysql, qui contient une table, possedant un champ de type BLOB, dans ce dernier je ve inserer une chaine de caracteres assez importante, j ai commence à inserer une chaine contenant, qq octets, le programme marche convenablement, mais si j execute mon programme pour inserer une chaine de qq kilos octets, le contenu de ce champ, n est plus que j ai atendu. donc est ce que c a cause du taille du BLOB, cad au moment que ma chaine depasse la taille du BLOB, il commence a ecraser l ancienne chaine?
    Merci

  2. #2
    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 pense plutot que une chaine de caracteres est limite en taille(ou plus exactement cela pose qqs problemes pour les grandes tailles)
    Pour les chaines de grande taille, il est conseille d'utiliser StringBuffer

    Sinon pour les blobs, il me semble plus judicieux d'ecrire un tableau de bytes dans un blob(par exemple).

  3. #3
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Tu pourrais donner un peu plus de précisions ?
    Comment tu ecris en base ?
    Qu'obtiens-tu exactement en base quand ta chaîne est "trop grande" ?

  4. #4
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 128
    Points : 52
    Points
    52
    Par défaut explications
    j ecris dans ma base, en utilisant la methode setString(num_BLOB,chaine).
    supposons que j ai une collection de 12000 documents XML, et je veux mettre des informations que pour les documents contenant le mot Java leurs proprietes dans ma BD. par exemple le document n° 6000, qui contient le mot Java, doit etre existant dans ma base, et mettre les informations qui le concerne dans mon BLOB, mais le programme ne met pas ses informations, pourtant ce document contient le mot Java, par contre si je laisse se document avec une collection qui qui contient qq documents (parmi eux le doc n°6000), j aurais la bonne resultat cad il met dans mon BLOB les informations concernant le document n°6000.

  5. #5
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Euh... pas compris là l'explication sur les documents ...

  6. #6
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 128
    Points : 52
    Points
    52
    Par défaut precisions
    le programme marche correctement pour l insertion du BLOB dans la BD(resultat correcte), ça si la collection de documents que je parcours possedant qq doc. par contre j aurais un resultat incorrecte si je teste toute la collection, jaurais un resultat incomplete dans mon BLOB.

  7. #7
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Hum.. peut être qu'avec un peu de code de ce parcours ça serait plus clair ...

  8. #8
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 128
    Points : 52
    Points
    52
    Par défaut code
    le champ elements, c le champ où il ya le probleme.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    for(Iterator j=mt.values().iterator();j.hasNext(); ){
     
    		Terme termeCourant=(Terme)j.next();		
    		requete="select * from terme where terme="+"\""+termeCourant.getTerme()+"\"";
     
    		ResultSet exist=statement.executeQuery(requete);
     
    		if(!exist.next()){
    		   ref_terme=termeCourant.getRef_terme();
      	        terme=termeCourant.getTerme();
      	  		frq=termeCourant.getFrq();
      	  		doccount=termeCourant.getDoccount();
      	  		elements=termeCourant.getElements();
      	  		elmcount=termeCourant.getElmcount();
     
      	  	requete="insert into terme(terme, frq,doccount,elmcount,elements) values("+"\""+terme+"\""+","+termeCourant.getFrq()+","+doccount+","+elmcount+","+"?"+")";
      	  	PreparedStatement statement1 = getConnection().prepareStatement(requete);
     
      	  	statement1.setString(1,elements);
      	  	statement1.executeUpdate();
      	  	exist.close(); 	
      	  	}//fin exist
      	  	else{
      	  		frq=termeCourant.getFrq()+exist.getInt("frq");
      	  		doccount=termeCourant.getDoccount()+exist.getInt("doccount");
      	  		elements=termeCourant.getElements()+exist.getString("elements");
      	  		elmcount=termeCourant.getElmcount()+exist.getInt("elmcount");
     
      	  		String requete1="update terme set frq="+frq+", doccount="+doccount+", elmcount="+elmcount+", elements = ? where terme="+"\""+terme+"\"";  	  	
      	  		PreparedStatement statement1 = getConnection().prepareStatement(requete1);
      	  		statement1.setString(1,elements);
      	  		statement1.executeUpdate();
      	  		exist.close(); 	
      	  	}
      	  	}//fin mise à jour de terme

  9. #9
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 128
    Points : 52
    Points
    52
    Par défaut j ai eu l erreur mai pa la solution
    j ai eu l erreur, c quand la taille de l element a inserer dans la BD depasse le type du champ, il escrase la premiere partie !!!
    par exemple tu as un champ de type varchar(3), et tu ve inserer la chaine de caracteres java, tu trouve dans ta base seulement cette chaine de caracteres jav

  10. #10
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Si j'ai bien compris plus de souci alors :-) Te reste plus qu'à mettre en résolu ...

  11. #11
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 128
    Points : 52
    Points
    52
    Par défaut remede de ses problemes
    mai quel est la solution, sachant que le type du champ c un BLOB !!!

  12. #12
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Passer à la taille supérieure ^^
    cf Types MySQL pour des String
    A priori d'ailleurs si c'est du texte, LONGTEXT c'est mieux que LONGBLOB

  13. #13
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 128
    Points : 52
    Points
    52
    Par défaut exception
    j ai fai la modification de rendre, le type du champ LONGTEXT, mai le programme au moment de l insertion me leve une exception com.mysql.jdbc.PacketTooBigException

Discussions similaires

  1. Insertion de BLOB,CLOB,xml avec oracle 10g
    Par Dx_ter dans le forum Coldfusion
    Réponses: 1
    Dernier message: 10/07/2007, 11h34
  2. procedure insertion image blob
    Par r83 dans le forum SQL
    Réponses: 1
    Dernier message: 08/05/2007, 12h49
  3. [VB6] position du curseur dans une zone texte et insertion caractere
    Par tim69000 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/05/2006, 09h52
  4. insertion des blob avec LOAD DATA...
    Par orli1x51 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 27/10/2003, 18h05
  5. insertion caracteres speciaux html
    Par arcane dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/09/2003, 14h16

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