PDA

Ver la Versión Completa : problemas con las ñ


ebeltete
14-05-2003, 04:02:13
tengo problemas con las eñes en la siguiente sql de un tquery
select titu.*, interpre.nombre as interp, rubros.rubro, clientes.razonsoc from "titu.db" titu
left join "interpre.db" interpre on titu.interprete=interpre.codigo
left join "clientes.db" clientes on titu.cliente=clientes.codigo
left join "rubros.db" rubros on titu.rubro=rubros.codigo
where LOWER(titu.nombre) like :nombre and LOWER(interpre.nombre) like :interprete order by interpre.nombre

las eñes de la tabla titu me aparecen bien pero las que tengo en la tabla interpre me parecen como '#' , porque pasa esto?
Gracias

roman
14-05-2003, 06:14:50
Posteado originalmente por ebeltete
tengo problemas con las eñes en la siguiente sql de un tquery

[...]

las eñes de la tabla titu me aparecen bien pero las que tengo en la tabla interpre me parecen como '#' , porque pasa esto?
Gracias

No especificas que base de datos usas pero al menos en Paradox eso sucede por el lenguaje de la tabla: cuando creas la tabla puedes escoger el lenguaje (o sea el tipo de caracteres que se utilizarán) Revísale por ahí. Desafortunadamente, si el problema está en la tabla, aunque puedes cambiarle el lenguaje, ya habrás perdido las eñes, acentos y demás. Claro que te puedes hacer un programita para sustituir los # por ñ.

También puede pasar (quizá no porque parece que sólo esa tabla te da problemas) que aunque la tabla muestre correctamente los caracteres (abriéndola con el Database Desktop por ejemplo), la configuración global de Paradox (la ves con el BDE Admin) tenga el lenguaje incorrecto y presenta los resultados de las consultas con caracteres incorrectos.

Esto último no sé bien cómo se resuelve ya que alguna vez intenté cambiar el lenguaje en la configuración global y aún así me seguía cambiando las eñes.

De cualquier forma la cosa anda por ahí, en el lenguaje de las tablas.

// Saludos

ebeltete
15-05-2003, 17:17:56
Gracias por tu ayuda, pero detecte que el problema es en la tabla que esta despues del "left join", por ejemplo:

si hago la consulta de la siguiente manera:
select * from "titu.db" titu
left join "interpre.db" interpre on titu.interprete=interpre.codigo
where LOWER(titu.nombre) like :nombre and LOWER(interpre.nombre) like :interprete order by interpre.nombre
el problema con las ñ lo tengo en la tabla interpre.

Si la consulta la hago de la manera siguiente:
select * from "interpre.db" interpre
left join "titu .db" titu on titu.interprete=interpre.codigo
where LOWER(titu.nombre) like :nombre and LOWER(interpre.nombre) like :interprete order by interpre.nombre
el problema con las ñ lo tengo en la tabla titu.

O sea que la tabla que esta despues del "from" me aparece bien sea cual sea la tabla, pero cuando a la misma tabla la pongo en el left join me aparece mal la ñ.

Las tablas son Paradox y tengo bien el lenguaje, tanto el global en el BDE como el de la tabla (Pdox ANSI Spanish), desde ya muchas gracias y espero poder resolver el problema.

roman
15-05-2003, 19:31:51
Posteado originalmente por ebeltete
[B]O sea que la tabla que esta despues del "from" me aparece bien sea cual sea la tabla, pero cuando a la misma tabla la pongo en el left join me aparece mal la ñ.


Algo así me sucedió a mí aunque no había detectado con la precisión que lo haces el problema. Me imagino que tiene que ver con la forma en que Paradox genera los resultados y es posible que en algunas construcciones genere tablas temporales en las que hace caso omiso del lenguaje.

Si encuentras la solución te agradeceré que lo escribas aquí.

// Saludos

ebeltete
22-05-2003, 21:52:47
No puedo con las eñes, quien las invento???
Por favor que la Real Academi la hag desparecer!!!!!, asi se me termina el problema con mis consultas sql, el problema despues va a ser como llamar al ñoño.....

bitERROR
23-05-2003, 03:00:52
select titu.*, interpre.nombre as interp, rubros.rubro, clientes.razonsoc from "titu.db" titu
left join "interpre.db" interpre on titu.interprete=interpre.codigo
left join "clientes.db" clientes on titu.cliente=clientes.codigo
left join "rubros.db" rubros on titu.rubro=rubros.codigo
where LOWER(titu.nombre) like :nombre and LOWER(interpre.nombre) like :interprete order by interpre.nombre

buenas ebeltete, descubrí una curiosidad hace unos meses con los campos blob y puede, aunque parezca raro, que te sirva, no se si ocurre lo mismo con los campos alfanuméricos, pero prueba a ver.

Yo trabajo con interbase y defino los alias como Paradox 'intl', en alguna ocasión se produce el error 'Can not transliterate between character sets' al intentar leer un campo blob con carácteres no aceptados.

Si hago un select así: 'SELECT CAMPO'. Me salta el mensaje de error.
Sinembargo, si hago el select así: 'SELECT CAMPO AS CAMPO'. No salta el error y puedo leer el contenido del campo, lo único que ocurre es que los carácteres acentuados, eñes, dieresis, etc... se cambian por otros, por ejemplo la ñ se convierte en # !!

Es decir que poniendo una alias al campo, no se por que, parece que se lee el campo con diferente character set. He visto que en tu primer select, el que cito ahí arriba has puesto un alias al campo interpre.nombre ("...interpre.nombre as interp..."), mira de llamar al campo tal cual, a ver si hay suerte!

Xaludos, cuentame los resultados y a ver si alguien me explica esta curiosidad. :p

select titu.*, interpre.nombre, rubros.rubro, clientes.razonsoc from "titu.db" titu
left join "interpre.db" interpre on titu.interprete=interpre.codigo
left join "clientes.db" clientes on titu.cliente=clientes.codigo
left join "rubros.db" rubros on titu.rubro=rubros.codigo
where LOWER(titu.nombre) like :nombre and LOWER(interpre.nombre) like :interprete order by interpre.nombre

ebeltete
24-05-2003, 02:08:23
ni modo, no hay forma, creo se un bug, pues siempre me cambia la "eñe", el tema es que cuando necesitas un campo tal cual de las tablas que estan en el left join se complica, por ejemplo la ruta de acceso a un archivo, pero bueno por el momento voy a tener que arreglarmes asi, gracias y creo es un tema para seguir investigando.