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 :)