Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
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 25/09/2008, 14h01   #1
Candidat au titre de Membre du Club
 
Inscription : février 2005
Messages : 35
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 35
Points : 12
Points : 12
Par défaut Problème de lecture d'un BLOB Oracle

Bonjour à tous,

Voici mon problème :

Je doit récuperer la valeur d'un champ BLOB (base ORACLE) et l'afficher sur ma page (c'est une image gif).

Sur la page principale, j'ai ce code :
Code :
<img src="signature.asp?id=<%=id_intervention%>" >
Sur la page Signature.asp j'ai cela :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
chaineConn = "Provider=MSDAORA;Data Source=XXXXX;User Id=YYYYY; Password=ZZZ;"
chaineConn_2 = "Provider=OraOLEDB.Oracle;Data Source=XXXXX;User Id= YYYYY; Password= ZZZ;"
 
Set objConnexion_2 = Server.CreateObject("ADODB.Connection")
objConnexion_2.Open chaineConn_2
 
id = Request("id")
 
sql = "SELECT signature FROM table WHERE id = " & id
 
Set Rs = objConnexion_2.Execute(sql)
 
Response.ContentType = "image/gif"
Response.BinaryWrite (Rs("signature"))
 
objConnexion_2.close
Set objConnexion_2 = Nothing
Si j'utilise la première chaine de connexion, j'ai un message d'erreur :

Citation:
Microsoft OLE DB Provider for Oracle erreur '80004005'

Ce type de données n'est pas pris en charge.
Si j'utilise la deuxième chaine, j'ai le message d'erreur suivant :

Citation:
Objet Response erreur 'ASP 0106 : 80020005'

Erreur de type

...signature.asp, ligne 21

Un type de données non pris en charge a été détecté.
Est-ce que vous avez une idée pour que je puisse enfin afficher mon image ?

Merci d'avance.
darkian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2008, 14h12   #2
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Bonjour,

Une commande Execute s'utilise pour effectuer une action (insert, update ou delete) qui ne retourne pas de données.

Pour récupérer des données, il faut utiliser la méthode Open d'un recordset.
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2008, 14h41   #3
Candidat au titre de Membre du Club
 
Inscription : février 2005
Messages : 35
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 35
Points : 12
Points : 12
Citation:
Envoyé par pc75 Voir le message
Bonjour,

Une commande Execute s'utilise pour effectuer une action (insert, update ou delete) qui ne retourne pas de données.

Pour récupérer des données, il faut utiliser la méthode Open d'un recordset.
Oui, mais sur cet exemple, je n'utilise pas un objet recordset mais un objet connexion

Code :
1
2
3
objConnexion_2.Open chaineConn_2
...
Set Rs = objConnexion_2.Execute(sql)
D'ailleurs c'est bien ce genre de code qui est montré dans la FAQ :

http://asp.developpez.com/faq/?page=acces-donnes#image
darkian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2008, 20h26   #4
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 862
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 862
Points : 5 982
Points : 5 982
Salut,
Citation:
Envoyé par pc75 Voir le message
Une commande Execute s'utilise pour effectuer une action (insert, update ou delete) qui ne retourne pas de données.
Ouj là là sisisi, on peut utiliser une commande pour lire des données. D'ailleurs, cela donne un recordset très rapide: http://www.w3schools.com/ADO/met_comm_execute.asp

Tout le pb est de récupérer des données binaires il me semble.
Par hasard, l'esapce dans le nom du champ est une erreur de frappe?
Code :
Response.BinaryWrite (Rs("signature "))
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 14h01   #5
Candidat au titre de Membre du Club
 
Inscription : février 2005
Messages : 35
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 35
Points : 12
Points : 12
Oui, oui. C'est bien une erreur de frappe. C'est correct dans le code
darkian est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h10.


 
 
 
 
Partenaires

Hébergement Web