Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Problema con caracteres especiales en la aplicación (https://www.clubdelphi.com/foros/showthread.php?t=78994)

jasmad 01-06-2012 00:32:00

Problema con caracteres especiales en la aplicación
 
hola a todos,

estoy desarrollando un sistema con base de datos propia, este importa datos de la base de datos de otro sistema, las dos bases tienen charset none
al importar datos tanto en la source como en la destino(la de mi sistema) se pueden ver los caracteres especiales como tildes y ñ's pero en la aplicacion muestro los datos importados por ejemplo en un grid y muestra un signo de pregunta donde deberia haber una tilde, ñ o cualquier caracter especial.(ej. jiménez se muestra jim?nez)
intenté cambiar el charset de mi bd a win1252 e ISO8859_1 para ver si podría ser la solución pero el resultado siempre es el mismo.
como las dos bases estan iguales supuse que seria problema en la aplicacion, entonces establecí la propiedad del componente de conexion
Código Delphi [-]
charset = 'win1252'
Código Delphi [-]
charset = 'ISO8859_1'
pero sigue mostrando el signo de pregunta en vez de los caracteres especiales y cuando trato de filtrar con caracteres especiales salta la exepcion
"arithmetic exception numeric overflow or string truncation cannot transliterate character between character sets"

con la propiedad charset en 'NONE' del componente no me salta la excepcion pero no reconoce los registros que tengan caracteres especiales o si filtro con '?' tampoco me los muestra

estoy usando componentes IBDAC para base de datos que son muy parecidos a los ibx y zeos
en lazarus0.9.31 version codetyphon 2.50

alguien tiene alguna idea de porque me esta pasando esto porque yo he visto que esta excepcion es de base de datos

y una vez mas mis respetos a todos los miembros de esta grandiosa comunidad y gracias por la ayuda

Casimiro Notevi 01-06-2012 00:46:35

Cita:

Empezado por jasmad (Mensaje 434038)
estoy desarrollando un sistema con base de datos propia

¿Cómo es ese sistema de bases de datos?, ¿es conocida?, ¿qué nombre tiene?, ¿cómo es?, ¿es relacional?, ¿es libre?, etc.

jasmad 04-06-2012 19:18:01

bd
 
hola
el motor de base de datos que estoy usando es firebird 2.5

Casimiro Notevi 04-06-2012 20:23:03

Bien, es que como decías que era una BD "propia", pensé que habías creado una.

O sea, que tienes dos bases de datos firebird, en una puedes ver las Ñ,á,é,í,ó,ú y en la otra no.
¿Las dos son firebird 2.5?
¿Es una copia o es otra BD a la que has importado los datos?
Si es otra BD, ¿la has creado igual que la otra?: ISO8859_1, UTF8, etc.
¿El programa para acceder a la BD es el mismo en ambas bases de datos?, ¿configurado igual?

jasmad 04-06-2012 22:29:05

jaja ojala algun dia llegue a ese nivel de crear un motor de bd...
las bases son diferentes o sea no tienen la misma estructura ni se parecen;
las bases de datos tienen un programa diferente cada una;
el charset de las dos bds es NONE;
son dos bases de datos firebird que corren en firebird 2.5 ;
eesn las dos desde el explorador de base de datos(ibexpert) veo las Ñ,á,é,í,ó,ú
en mi programa que lee mi base datos es donde no se logran ver los acentos que si se pueden ver desde ibexpert en vez de la letra se muestra un signo de pregunta '?'

Casimiro Notevi 04-06-2012 22:41:35

¿Entonces puede ser alguna configuración de windows?

mightydragonlor 04-06-2012 23:25:50

Trata lo siguiente, convierte una cadena de texto entrante a UTF8 con la función AnsiToUTF8 y nos cuentas si se arregla, así sea con solo una cadena, luego vemos el resto.

jasmad 05-06-2012 16:21:33

no se en que parte de la configuracion se puede afecatar la vista de la aplicacion...
en el evento cellclick del grid hago un showmessage del AnsiToUTF8(campo_del_dataset) y me muestra los caracteres especiales :)-,
pero establesco la opcion del componentente de conexion de charset a utf8 y no pasa nada :´(

mightydragonlor 05-06-2012 19:09:10

Haz intentado poner en la conexión de Lazarus el Charset NONE?

jasmad 06-06-2012 00:42:08

si esa es la que tiene el componente de conexion asignada tambien probe con win1252, ISO8859_1 y utf8

jasmad 12-07-2012 19:19:05

muchas gracias a todos ustedes pude resolver el problema, con el consejo de mightydragonlor lo que hice fue que al momento de la importacion llamar esta funcion con los campos que fueran varchar y mi aplicacion ya muestra los acentos correctamente eso si en la base de datos se muestra otra cosa pero la aplicacion lo traduce supongo
gracias


La franja horaria es GMT +2. Ahora son las 19:52:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi