Ver Mensaje Individual
  #13  
Antiguo 05-11-2010
Chandra_ Chandra_ is offline
Miembro
 
Registrado: may 2008
Posts: 50
Reputación: 16
Chandra_ Va por buen camino
Cita:
Empezado por guillotmarc Ver Mensaje
Hola.
Todos los charsets sirven para codificar los alfabetos de un grupo de lenguas. Pero el iso8859_1 solo sirve para codificar el alfabeto de las lenguas de Europa Occidental, mientras que Unicode pretende poder codificar los alfabetos de todas las lenguas del mundo.

Como el iso8859_1 solo codifica un pequeño grupo de lenguas, puede guardar cada letra del alfabeto en un solo byte. En cambio Unicode tiene que codificar un montón de letras de distintos alfabetos, las letras más comunes A B C D ... las codifica en un solo byte, pero para codificar letras de alfabetos más complicados como el chino va a necesita bastantes más bytes para cada letra.

Esta es una de las grandes diferencias entre Unicode y los demás charsets (iso8859_1 y compañía) que Unicode tiene un tamaño de letra variable y los charsets tradicionales tienen un tamaño de letra fijo. Por eso a los lenguajes de programación, bases de datos, sistemas operativos, ... les resulta más complejo tener que lidiar con Unicode.
Eso es lo que yo llamo una clase magistral sobre extándares ISO . Ahora ya queda todo claro, muchas gracias.

Cita:
Yo no lo especifico en las consultas, porqué mis campos ya tienen definido que usan este Collate (fíjate en IBExpert o en el programa que uses para gestionar tu base de datos que puedes especificar los Collates a nivel de campos). De esta forma, sin decirle nada a las consultas, ya saben que ordenación (Collate) hay que aplicar en función del campo implicado.

Para no complicarme la vida y no tener que andar siempre especificándolo cada vez que doy de alta un campo, lo tengo definido en los Dominios que utilizo para especificar los tipos de los campos. Como puedes ver, en los Dominios también puedes marcar el Charset y Collate de los campos que lo apliquen.
Pues así lo voy a hacer a partir de ahora. Yo también uso IBExpert (que, por ciuerto, creo que está hecho con Delphi) y voy a definirlo también en los Dominios, como dices.

Muchísimas gracias, guillotmarc, por una respuesta tan currada y esclarecedora. Qué buena sensación da cuando te explican bien las cosas y las entiendes

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Para que Chandra_ lo tenga más claro, pongo un ejemplo: (...)
Un millón de gracias, Casimiro; muy interesante y útil el código. Has tenido incluso el detalle de ponermelo por si uso Firebird 2.5 (como es el caso) o por si uso versiones anteriores. Me lo guardo para futuras referencias. Muchas gracias por tu tiempo.

Qué gusto da saber que si hay problemas, siempre está ahí la gente del ClubDelphi para echarte una mano
Responder Con Cita