ASP - PROBLEMAS PARA UTILIZAR IMAGES EN UNA BD SQL

 
Vista:

PROBLEMAS PARA UTILIZAR IMAGES EN UNA BD SQL

Publicado por Luis (18 intervenciones) el 30/11/2002 17:09:06
Espero me puedan ayudar estoy usando el sgte codigo para llamar una imagen de una base de datos

<%@ Language=VBScript %>
<%
set cn=createobject("ADODB.CONNECTION")
strconexion = application("conexion")
cn.ConnectionString = strconexion
cn.Open
set rs=createobject("ADODB.recordset")
rs.ActiveConnection = cn
rs.Source = "SELECT photo FROM employees where employeeid ='" & Request.QueryString("id")& "'"
rs.Open

Response.ContentType = "image/gif" '(or "image/jpeg")
Response.BinaryWrite rs("photo")
%>

y en navegador para probarlo estoy usando la sgte linea
http://localhost/web/getimage.asp?id=1

Esta base de datos es por siaca de northwind las que tiene sql como ejemplos... espero me puedan ayudar con mi codigo porque me sale una cruz roja que me da colera.. byeeee
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PROBLEMAS PARA UTILIZAR IMAGES EN UNA BD SQL

Publicado por Pechi (163 intervenciones) el 01/12/2002 06:03:07
Porque no pones * en la SQL
"SELECT * FROM employees where employeeid = ' " & Request.QueryString("id")& "' "

Revisa si tu recordset esta vacio antes de mandar imprimir la foto por ultimo proba imprimiendo la foto sin el where si asi funciona en error no esta en lo de la foto sino en la sql


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROBLEMAS PARA UTILIZAR IMAGES EN UNA BD SQL

Publicado por Esteban (508 intervenciones) el 01/12/2002 08:36:36
Yo tuve un problema con imágenes, solo que en Oracle, pero es lo mismo.
Te aconcejo que utilices el siguiente código que encontré en internet, es en VB, pero para ASP es casi lo mismo:

Option Explicit

Const BLOCK_SIZE = 1048576

Sub BlobToFile(fld As Object, ByVal FName As String, _
Optional FieldSize As Long = -1, _
Optional Threshold As Long = 1048576)
'
' Assumes file does not exist
' Data cannot exceed approx. 2Gb in size
'
Dim F As Long, bData() As Byte, sData As String
F = FreeFile
Open FName For Binary As #F
Select Case fld.Type
Case 205
If FieldSize = -1 Then ' blob field is of unknown size
WriteFromUnsizedBinary F, fld
Else ' blob field is of known size
If FieldSize > Threshold Then ' very large actual data
WriteFromBinary F, fld, FieldSize
Else ' smallish actual data
bData = fld.Value
Put #F, , bData ' PUT tacks on overhead if use fld.Value
End If
End If
Case 201, 203
If FieldSize = -1 Then
WriteFromUnsizedText F, fld
Else
If FieldSize > Threshold Then
WriteFromText F, fld, FieldSize
Else
sData = fld.Value
Put #F, , sData ' PUT tacks on overhead if use fld.Value
End If
End If
End Select
Close #F
End Sub

Sub WriteFromBinary(ByVal F As Long, fld As Object, _
ByVal FieldSize As Long)
Dim Data() As Byte, BytesRead As Long
Do While FieldSize <> BytesRead
If FieldSize - BytesRead < BLOCK_SIZE Then
Data = fld.GetChunk(FieldSize - BLOCK_SIZE)
BytesRead = FieldSize
Else
Data = fld.GetChunk(BLOCK_SIZE)
BytesRead = BytesRead + BLOCK_SIZE
End If
Put #F, , Data
Loop
End Sub

Sub WriteFromUnsizedBinary(ByVal F As Long, fld As Object)
Dim Data() As Byte, Temp As Variant
Do
Temp = fld.GetChunk(BLOCK_SIZE)
If IsNull(Temp) Then Exit Do
Data = Temp
Put #F, , Data
Loop While LenB(Temp) = BLOCK_SIZE
End Sub

Sub WriteFromText(ByVal F As Long, fld As Object, _
ByVal FieldSize As Long)
Dim Data As String, CharsRead As Long
Do While FieldSize <> CharsRead
If FieldSize - CharsRead < BLOCK_SIZE Then
Data = fld.GetChunk(FieldSize - BLOCK_SIZE)
CharsRead = FieldSize
Else
Data = fld.GetChunk(BLOCK_SIZE)
CharsRead = CharsRead + BLOCK_SIZE
End If
Put #F, , Data
Loop
End Sub

Sub WriteFromUnsizedText(ByVal F As Long, fld As Object)
Dim Data As String, Temp As Variant
Do
Temp = fld.GetChunk(BLOCK_SIZE)
If IsNull(Temp) Then Exit Do
Data = Temp
Put #F, , Data
Loop While Len(Temp) = BLOCK_SIZE
End Sub

Sub FileToBlob(ByVal FName As String, fld As Object, _
Optional Threshold As Long = 1048576)
'
' Assumes file exists
' Assumes calling routine does the UPDATE
' File cannot exceed approx. 2Gb in size
'
Dim F As Long, Data() As Byte, FileSize As Long
F = FreeFile
Open FName For Binary As #F
FileSize = LOF(F)
Select Case fld.Type
Case 205
If FileSize > Threshold Then
ReadToBinary F, fld, FileSize
Else
Data = InputB(FileSize, F)
fld.Value = Data
End If
Case 201, 203
If FileSize > Threshold Then
ReadToText F, fld, FileSize
Else
fld.Value = Input(FileSize, F)
End If
End Select
Close #F
End Sub

Sub ReadToBinary(ByVal F As Long, fld As Object, _
ByVal FileSize As Long)
Dim Data() As Byte, BytesRead As Long
Do While FileSize <> BytesRead
If FileSize - BytesRead < BLOCK_SIZE Then
Data = InputB(FileSize - BytesRead, F)
BytesRead = FileSize
Else
Data = InputB(BLOCK_SIZE, F)
BytesRead = BytesRead + BLOCK_SIZE
End If
fld.AppendChunk Data
Loop
End Sub

Sub ReadToText(ByVal F As Long, fld As Object, _
ByVal FileSize As Long)
Dim Data As String, CharsRead As Long
Do While FileSize <> CharsRead
If FileSize - CharsRead < BLOCK_SIZE Then
Data = Input(FileSize - CharsRead, F)
CharsRead = FileSize
Else
Data = Input(BLOCK_SIZE, F)
CharsRead = CharsRead + BLOCK_SIZE
End If
fld.AppendChunk Data
Loop
End Sub

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar