Foros del Web » Programando para Internet » ASP Clásico »

consulta con el caracter &

Estas en el tema de consulta con el caracter & en el foro de ASP Clásico en Foros del Web. Hola, me encontre con que esta consulta: SQL = "Select * FROM " & Request("tipo") & " WHERE (UCase(pal) = '" & Request("palabra") & "')" ...
  #1 (permalink)  
Antiguo 28/11/2004, 11:16
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
consulta con el caracter &

Hola,
me encontre con que esta consulta:

SQL = "Select * FROM " & Request("tipo") & " WHERE (UCase(pal) = '" & Request("palabra") & "')"

me da error '80004005' de que no puede encontrar el archivo solo si elarchivo lleva el caracter &

Tiene esto alguna solución, aparte de cambiar el & en el nombre de archivo?

gracias
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #2 (permalink)  
Antiguo 28/11/2004, 12:18
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
que archivo? no entiendo.

de todas maneras revisa el sql
de esta manera


SQL = "Select * FROM " & Request("tipo") & " WHERE (UCase(pal) = '" & Request("palabra") & "')"

response.write sql
response.end

luego checa si la sentencia sql enviada a ejecutar a la BD tiene sentido y si hace lo que tu realmente deseas hacer.
  #3 (permalink)  
Antiguo 28/11/2004, 15:38
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
hola.
el archivo a buscar en la BD.
si el archivo se llama por ejemplo lilo_&_stick, da error aunque esté en la base de datos
pero si se llama lilo y stick funciona bien, con cualquier archivo que no lleve en el nombre una & funciona correcto.
me entiendes ahora?
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #4 (permalink)  
Antiguo 28/11/2004, 21:44
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
sigo sin entender a que te refieres con eso de archivo en la bd.


prueba cambiando el & por &

o el & por %26amp


de que estaras hablando?
  #5 (permalink)  
Antiguo 28/11/2004, 22:13
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 5 meses
Puntos: 8
Cambia el "&" en el nombre de archivo de la manera que Muzztein te ha indicado y ya no tendras ese problema.
Si es MUY necesario que tus futuros nombres de archivos contengan ese caracter, al momento de grabar en vez del "&" cambialo usando un Replace por otro caracter, y cuando lo traigas de vuelta -usando el replace de nuevo- cambias el caracter que usaste por el "&" y listo.
De que si ha otra forma en la que no tengas que cambiar los nombres que ya tienes grabados en la base de esa manera, lo desconzco, pero creo que de la manera que te describi te funcionara sin problemas.

Saludos!
  #6 (permalink)  
Antiguo 29/11/2004, 06:49
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
Bien Muzztein me emburré con el nombre de archivo,y en realidad es el nombre o frase que haya escrito en la BD.Bueno gracias a los dos por responder,aunque cambiar todas las & es un trabajo inmenso,es posible que haya mas de 20.000. pero bueno ya vere que hago.
Aunque quitando solo una parte de lo que llevaba en el href funciona.
Voy a explicarlo todo con más detalles para ver si hay otra solucion.
Vereis,hago una consulta normal a la BD en asp y para que muestre los resultados lleva entre otras lineas estas:
Código PHP:
 hipervinculo=""request("menu") & "/" request.QueryString("letra") &"/"
Response.Write "<a title="" (" tama " Kb.) "" href="" clicks1.asp?url="&hipervinculo
Response
.Write file.Name """ onclick=""parent.cambiar(this.href);return false"">"                
    
Response.Write palabra            
    Response
.Write "</a> 
O sea que al pulsar click me manda a clicks1.asp y despues la funcion cambiar() hace que se muestre la foto en un iframe pequeño.
El archivo clicks1.asp abre otra BD y cuenta los clicks y es este:
Código PHP:
<%
Response.Buffer=TRUE
ip
=request.servervariables("HTTP_X_FORWARDED_FOR"
url Request.Querystring("url")
if 
url <>"" then
Set oConn 
Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("/mdb-database/cuentaclicks.mdb")&";"
strsql "SELECT * FROM Contador WHERE url = '" url "'" 
Set rs Server.CreateObject("ADODB.RecordSet")
RS.open strsqloConn33
if rs.eof then
    rs
.AddNew
    rs
("clicks")= 1
    rs
("url") = url
    rs
("ip") = ip
    rs
.update
else
    
rs("clicks")=rs("clicks")+1
    rs
("ip") = ip
    rs
.update
end 
if 
rs.Close
set rs
=nothing
oConn
.Close
response
.redirect URL
end 
if
%> 
Pues lo dicho anteriormente, sólo si la variable en hipervinculo lleva el caracter & falla
y si quito href="" clicks1.asp?url=" & hipervinculo y lo cambio por href=""" & hipervinculo
funciona bien, perono cuenta los clicks claro.
A ver si le veis algun problema.

Gracias
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com

Última edición por eeeee; 29/11/2004 a las 06:59
  #7 (permalink)  
Antiguo 29/11/2004, 07:16
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
pues prueba esto

hipervinculo=""& request("menu") & "/" & request.QueryString("letra") &"/"
hipervinculo=replace(hipervinculo,"&","%26amp") '<-----------------------
Response.Write "<a title="" (" & tama & " Kb.) "" href="" clicks1.asp?url="&hipervinculo
Response.Write file.Name & """ onclick=""parent.cambiar(this.href);return false"">"
Response.Write palabra
Response.Write "</a>
  #8 (permalink)  
Antiguo 29/11/2004, 08:01
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
De momento hace igual que antes, no muestra la foto se queda en clicks1.asp
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #9 (permalink)  
Antiguo 29/11/2004, 08:05
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
y reemplazando & por &amp; ???
  #10 (permalink)  
Antiguo 29/11/2004, 09:42
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
A la variable (que no sé cual es) que puede llegar a tener el caracter &, hacele un URLEncode:

Server.URLEncode(NonmbreDeLaVariable)

(o tal vez un Server.HTMLEncode(NonmbreDeLaVariable) )

Luego, fijate si funciona
__________________
...___...
  #11 (permalink)  
Antiguo 29/11/2004, 11:58
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
Parece que esto tiene mala solucion, sigue sin mostrar la foto, y el archivo clicks1.asp, llega a escribir en la base de datos, pero si lo que tiene que escribir es lilo_&_stick solo escribe lilo_ y por lo tanto en el response.redirect url es capaz de llevar el valor de lilo_ y por eso despues no encuentra la foto.
Debe haber algo en clicks1.asp que no encuentro, ya que casi del mismo modo subo la foto con upload y escribe las & en las BD.

Hay por ahí algun otro ejemplo de cuenta clicks?, ya que anulando este, funciona.
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com

Última edición por eeeee; 29/11/2004 a las 12:00
  #12 (permalink)  
Antiguo 29/11/2004, 12:14
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
mmm antes de enviar el string al response.redirect o como sea que hagas el direccionamiento cambia el & por algun caracter complicado como

replace(mistring,"&","[miapersan]")

luego haces la conversion en la otra pagina al reves.
  #13 (permalink)  
Antiguo 29/11/2004, 12:32
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
Vale Muzztein,ya lo intenté antes convirtiendolo dos veces, la primera para que escriba en la BD y la segunda para que no cambie all mandarla por response.redirect.
Pero bueno con el ejemplo de al zuwaga,por lo menos ya muestra la foto, pero me da otro error si intento editar el nombre,
la linea que modifique quedo asi :
Response.Write "<a title="" (" & Tabla.Fields("tam") & " Kb.) "" href="" clicks1.asp?url=" &Server.URLEncode(hipervinculo)

y mi duda ahora es si esta bien escrito de esta forma.
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #14 (permalink)  
Antiguo 29/11/2004, 13:50
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 20 años, 3 meses
Puntos: 0
Si está bien escrito porque ya funciona todo, pero me rompio la funcion de java """ onclick=""parent.cambiar(this.href);return false"">"

Se ve que al codificar la url, no se entera el java.
Al Zubaga,tu que se ve que entiendes el tema de urlEncode,que le debo poner a la linea de arriba o a este script que es el que muestra la foto?
Código PHP:
<script language="javascript">
function 
cambiar(cual){
document.getElementById('ima').src cual
aa
=cual.split("_")
aa[aa.length-1]
a.split(".")[0].toLowerCase()
if(
b=="frontbig"){
document.getElementById('ima').className "imgbig";
}
else{
if(
b=="back"){
document.getElementById('ima').className "imgback";
}
else{
if(
b=="full"){
document.getElementById('ima').className "imgfull";
}
else{
document.getElementById('ima').className "img";
}
}
}
}
</script> 
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:47.