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

consultas con/sin acento ASP y Oracle

Estas en el tema de consultas con/sin acento ASP y Oracle en el foro de ASP Clásico en Foros del Web. Buenas tardes, saludos bueno he aqui mi problema: existe una base de datos en Oracle la cual tiene la data en US7ASCII y ademas tengo ...
  #1 (permalink)  
Antiguo 26/04/2011, 13:52
 
Fecha de Ingreso: agosto-2009
Mensajes: 19
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta consultas con/sin acento ASP y Oracle

Buenas tardes, saludos

bueno he aqui mi problema:

existe una base de datos en Oracle la cual tiene la data en US7ASCII y ademas tengo un buscador desarrollado en ASP.

desde asp leo la variable y estoy tratando de sustituir los caracteres especiales antes de realizar la consulta. La función la consegui por internet y es esta :

Function EliminarAcentos(texto)
dim i, s1, s2
s1 = "áéíóúàèìòùãõâêîôôäëïöüçÁÉÍÓÚÀÈÌÒÙÃÕÂÊÎÔÛÄËÏÖÜ Ç"
s2 = "aeiouaeiouaoaeiooaeioucAEIOUAEIOUAOAEIOOAEIOU C"
if len(texto) <> 0 then
For i = 1 to Len(s1)
texto = replace(texto,mid(s1,i,1),mid(s2,i,1))
next
end if

EliminarAcentos = texto
End Function

La variable la leo por post de la siguiente manera :
clave = Request.Form("clave")

y en la consulta ademas estoy usando algo como esto :

...
where
( UPPER(translate(a.TITULO,'áéíóúàèìòùãõâêîôôäëïöüçÁ ÉÍÓÚÀÈÌÒÙÃÕÂÊÎÔÛÄËÏÖÜÇ','aeiouaeiouaoaeiooaeioucAE IOUAEIOUAOAEIOOAEIOUC'))
like UPPER(translate('%solución%','áéíóúàèìòùãõâêîôôäëï öüçÁÉÍÓÚÀÈÌÒÙÃÕÂÊÎÔÛÄËÏÖÜÇ','aeiouaeiouaoaeiooaeio ucAEIOUAEIOUAOAEIOOAEIOUC')) ) OR
...

Al ejecutar la consulta en oracle el query devuelve la misma cantidad de resultados sin importar si coloco la palabra clave 'solución' o 'solucion'

pero

cuando ejecuto esta misma consulta usando la aplicación con la clave 'solución' devuelve unos resultados y con 'solucion' devuelve otros.

entiendo que para futuros ingresos a la BD es recomendable quitar acentos y todo lo demas, el problema es con los registros que ya se encuentran.

como nota curiosa:
cuando uso esto : clave = Request.Form("clave")
y llamo a la función : clave=EliminarAcentos(clave)
e imprimo la palabra clave... la función no me sirve, no sustituye los caracteres... sigo viendo cuadritos en la pantalla
pero cuando en vez de pasarle la variable clave escribo algo como
EliminarAcentos("solución"), es decir, le paso un string, la función si hace los cambios

saben de algo ? alguna sugerencia, una palabra de aliento...

espero haberme explicado bien.

Gracias y saludos :)
  #2 (permalink)  
Antiguo 27/04/2011, 09:33
 
Fecha de Ingreso: junio-2002
Mensajes: 93
Antigüedad: 21 años, 9 meses
Puntos: 0
Respuesta: consultas con/sin acento ASP y Oracle

Has probado a imprimir clave, para ver como te llega.
Tal vez "solución" te llege como "soluci%F3n".


Un saludo

Etiquetas: acentos, asp, oracle, replace
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 05:27.