FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Órden alfabético en la Clausula Order by
Hola amigos del club, tengo el siguiente problema en mi base de datos, que es una interbase 6, tengo la siguiente sql.
select * from alumnos order by apellido1, apellido2, nombres lo ordena de la siguiente manera ------------------------------- apellido 1 apellido 2 Nombres ------------------------------- Beltran Badilla Pedro Juan Águila Acuña Francisco Pedro <----------- ????????????? Ahora que pasa con el tílde, al parece el sql lo toma como un símbolo especial por lo tanto no lo interpreta como un vocal acentuada. que podría hacer en el sql o la base interbase para que me pudiera interpretar bien los tíldes?, Gracias amigo por leer este hilo.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#2
|
||||
|
||||
Lo que se suele hacer en estos casos es, o bien tener un campo más con los nombres "normalizados" (sin acentos ni otros caracteres especiales) o seleccionar el campo mediante alguna función o procedimiento almacenado que elimine dichos acentos y los sustituya por sus letras "normales"
Un saludo |
#3
|
||||
|
||||
Depende del motor de la base de datos que estés utilizando. Yo no he visto que los acentos afecten al orden en la aplicación que estoy realizando ahora en el trabajo (MySQL). Aun así, la solución de ElKurgan puede ayudar.
|
#4
|
||||
|
||||
¿Y cambiando el juego de caracteres? (creo que se podía hacer para cada campo de forma individual)
A ver si alguno de los que sabe de IB/FB aporta algo más...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
Te pongo una declaración de domino, utilizo FB 1.5 pero creo que para IB también será valido. Tienes que fijarte en el juego de caracteres que es WIN1252 y el collate es la forma en la que ordena de ahí que se utilice el PXW_SPAN de españa.
Espero que te sirva.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5 |
#6
|
|||
|
|||
Supongo que lo que te dice Durbed funciona, si no prueba con
CARACTER SET DOS850 COLLATE DB_PT850 en FireBird 1 ordena según el orden latino internacional que es el correcto actualmente para el español. |
#7
|
||||
|
||||
Gracias Fidel
Lo intente lo que pasa que ya tengo con datos la base y cuando le asigno el dominio a un campo me borra la data.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#8
|
|||
|
|||
Tendrás que crear una tabla nueva con otro nombre y los mismos campos definidos con CARACTER SET DOS850 COLLATE DB_PT850, pasar a esta nueva tabla todos los datos, borrar la original y renombrar la nueva con el nombre original.
Si te conectas con un IBDatabase, en su caracter set debes poner ISO8859_1 para que visualice bien la ñ, ç, vocales acentuadas, etc. ..... Por otra parte, he observado que en la versión 2 de FireBird con CARACTER SET ISO8892_1 y COLLATE ES_ES ya ordena bien según el orden latino internacional (el correcto), pero no lo hace igual con las tildes cuando el ordenamiento es a un campo que cuando es a dos campos. Si lo hago a dos campos APELLIDO1, APELLIDO2 y me dejo la tilde en algún Martínez me ordena así. Martinez Abad Martinez Ruiz Martínez Pérez Martínez Ruiz en cambio si tengo un solo campo APELLIDOS ordena bien aunque en algún Martínez se me olvide la tilde Martinez Abad Martínez Pérez Martinez Ruiz Martínez Ruiz De todas formas esto supongo que se evita haciendo lo que dice ElKurgan. |
#9
|
||||
|
||||
Otra consulta
Con la siguiente query creo dominios:
Y con esto creo campos en una table ahora como creo ese mismo campo asignandole el dominio creado más arriba.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#10
|
||||
|
||||
TWC_NOMBRE es el nombre que les doy yo, donde TWC es un identificador del nombre de la aplicación que usa la base de datos , es decir, que puedes poner el nombre que quieras.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5 |
#11
|
||||
|
||||
Gracias Durbed
Ha sido de gran ayuda
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#12
|
||||
|
||||
Usuario me reportado error
Cita:
Coloma Iturriaga Sebastián Contreras Pérez Miguel Chinni Aylwin Francisca incluso cuando el orden lo realizo por el primer apellido
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#13
|
|||
|
|||
Cita:
Si usas InterBase 6 usa CARACTER SET DOS850 COLLATE DB_PT850 |
#14
|
||||
|
||||
Cita:
CREATE DOMAIN TWC_APELLIDOS_NEW AS VARCHAR(25) CHARACTER SET DOS850 COLLATE DB_PT850
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#15
|
|||
|
|||
Cuando tuve yo este problema hice estas anotaciones:
Se crea la base de datos con CARACTER SET DOS850 ▸ Los campos VarChar con CARACTER SET DOS850 y COLLATE DB_PTB850 ▸ Los campos Memo se puede dejar CARACTER SET ISO_8859_1 ▸ Al hacer la conexión a la base de datos, ya sea con IBExpert o en las aplicaciones con el componente TIBDatabase se pone CARACTER SET ISO_8859_1, y con esto se ordena correctamente y se ven bien todos los caracteres (si se conecta con CaracterSet DOS850 los caracteres con ascii no estandar no se ven como son). Por lo tanto puede ser que tengas que crear la tabla con CARACTER SET DOS850 De todas formas yo creo las tablas y campos antes con IBExpert, no en ejecución. El problema si tienes que crear nuevas tablas es que tendrías que pasar a las nuevas todos los datos que ya tienes, y merecerá o no la pena dependiendo de lo importante que sea que ordene bien, a veces es fundamental, sobre todo cuando hay por medio asuntos legales que cuando hay errores pueden dar lugar a reclamaciones judiciales. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Orden Alfabético en QuickReport | silver07 | Impresión | 4 | 23-10-2007 16:30:40 |
Orden alfabetico y no actual de los sheet(hojas) en excel | mariano_9 | Varios | 0 | 20-04-2007 20:56:43 |
Clausula order by C1, C2 desc | Jack | Firebird e Interbase | 3 | 05-11-2004 20:29:22 |
Problemas con el orden alfabetico... | mauriciorazquin | Tablas planas | 1 | 08-10-2003 17:51:03 |
Orden alfabético en español | Tomás | Firebird e Interbase | 3 | 05-06-2003 21:42:49 |
|