[Lazarus-es] Error al leer charset ISO8859_1 en Firebird 2.1.3con Lazarus

JoshyFun joshyfun en gmail.com
Mie Dic 2 16:39:16 CET 2009


Hello Paola,

Wednesday, December 2, 2009, 2:53:07 PM, you wrote:

PB> Hola Joshy..
PB> siguiendo este hilo, me puse a hacer pruebas creando una nueva base de
PB> datos firebird 2.1, usando IBExpert.
PB> Si la creo con el charset UTF8, agrego una tabla cualquiera (campos
PB> codigo, nombre) y le agrego datos, NO me permite ingresar nombres con
PB> tildes.

El problema es que no has descrito como lo haces, me explico, ¿ Cómo
abre IBExpert la conexión con Firebird ? Si el charset del campo es
UTF-8 (ojo, cada carácter ocupa 3 bytes en la base de datos) pero
IBExpert abre la conexión en ISO8559-1 entonces se produce el
"problema".

PB> Ahora, si creo la base de datos dejando el charset en NONE, creo una
PB> tabla cualquiera y la cargo con datos, no tengo problemas con tildes.

No deberías, pero el "problema" es que no funcionarán ni UPPERCASE, ni
ordenación alfabética ni nada de ese tipo. Bueno, funcionará la
ordenación (creo) pero por orden ASCII, o sea, que en vez de:

PruebA
Prueba
PruebC

Ordenará

PruebA
PruebC
Prueba

PB> Supongo que con el character ser 8859-1 no habrá problemas..
PB> entonces, cuando creo una bd, que charset sería el que me causaría luego
PB> menos problemas con los clientes que use?

El que menos problemas te generará depende de lo que vayas a meter
dentro. Si la base de datos sólo almacenará textos ISO8559-1 entonces
ese será el mejor, pero si la base necesitará campos internacionales
para griego por ejemplo, o ruso, necesitas que sea Unicode. La
conexión para que sea todo directo con Lazarus tendrás que abrirla en
UTF-8 para que los datos recibidos sean compatibles con los controles
visuales directamente.

Los campos UTF-8 lo malo que tienen es que ocupan 3 bytes por
caracter, o sea, el triple, lo bueno, que da igual en qué idioma
escribas, hasta la ordenación es buena en casi todos los idiomas
(algunos necesitan una ordenación en UTF-8 especial, pero son los
menos, la mayoría sólo tienen una letra fuera de su posición correcta,
ya que por ejemplo en Español Î sería ordenado al lado de las otra I
mientras que en Turco iría al final creo recordar).

-- 
Best regards,
 JoshyFun





More information about the Lazarus-es mailing list