Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/04/2007, 19h33   #1
Invité de passage
 
Inscription : mai 2002
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 5
Points : 2
Points : 2
Par défaut Récupérer un Blob situé en bdd (DB2) sur le disque dur [Résolu]

Bonjour,

Voici l'adaptation que j'ai commencé à réaliser pour récupérer un fichier zip situé dans la table CO dans le champ fichier_donnees
Au moment d'écrire mon fichier sur le disque dur j'ai l'erreur java.lang.IllegalArgumentException: im == null!
J'ai sur le disque dur mon fichier.zip à 0 octet et inouvrable
Si vous avez une idée...
[/I]


Code :
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
36
 
String nom = "fichier";
String codeco = "1";
String destination = strCheminImport + System.getProperty("file.separator")
			               + nom + ".zip";
File file = new File(destination);
	try{
 
	//préparation de l'instruction SQL
	String sql = "select * from CO where codeco=?";
	PreparedStatement statement = connexion.prepareStatement(sql);
 
 
	//récupération de l'image (BLOB)
	statement.setString(1, codeco);
	ResultSet resultat = statement.executeQuery();
 
	   IF ( resultat.next()){
		Blob blob = resultat.getBlob("fichier_donnees");
		//lecture du blob et écriture sur le disque
		BufferedImage image = ImageIO.READ(blob.getBinaryStream());
		FileOutputStream stream = new FileOutputStream(file);
		System.out.println("Ecriture");
		ImageIO.WRITE(image,"zip",stream);  
 
	   }
	   else{
	         System.out.println("Co "+  codeco +" introuvable");
		      }
 
 
	}catch(Exception e){
	e.printStackTrace();
		System.out.println("\nERREUR DURANT LE TRANSFERT : "
						+ e.getMessage());
	}
beber20 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 08h48   #2
Invité de passage
 
Inscription : mai 2002
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 5
Points : 2
Points : 2
C'est du DB2.

voici le code corrigé:


Code :
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
 
try{
			String nom = "fichier";
			String codeco = "1";
			String location = strCheminImport + System.getProperty("file.separator")
			               + nom + ".zip";
			File monImage = new File(location);
			FileOutputStream ostreamImage = new FileOutputStream(monImage);
 
			PreparedStatement ps = connexion.prepareStatement("select * from CO where codeco=?");
 
 
					ps.setString(1, codeco);
					ResultSet rs = ps.executeQuery();
 
 
						rs.next();
							InputStream istreamImage = rs.getBinaryStream("fichier_donnees");
 
							byte[] buffer = new byte[1024];
							int length = 0;
 
							while ((length = istreamImage.READ(buffer)) != -1) {
								ostreamImage.WRITE(buffer, 0, length);
							}
 
 
 
 
			}catch(Exception e){
				e.printStackTrace();
				System.out.println("\nERREUR DURANT LE TRANSFERT : "
						+ e.getMessage());
			}
beber20 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h28.


 
 
 
 
Partenaires

Hébergement Web