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)
-   -   Ordenación espacio (32) en Firebird (https://www.clubdelphi.com/foros/showthread.php?t=92265)

Gregorio Cíber 11-09-2017 12:04:13

Ordenación espacio (32) en Firebird
 
¡Hola amigos!
He buscado en temas parecidos a este (ordenacion Firebird) y no he encontrado respuesta al problema que se me plantea.

Me ha ocurrido una situación de incorrecta ordenación en una BD (Firebird 1.5, juego de caracteres ISO8859_1, collate ES-ES) con algunas consultas. Para comprobarlo probé lo siguiente en IBExpert:

Código Delphi [-]
SELECT aa.CODIGO, aa.NOMBRE 
FROM AC_ARTICULOS aa 
WHERE (aa.ENL_EMPRESA = 1)  and (aa.NOMBRE >= 'MONO')   and (aa.NOMBRE <= 'MONOz') 
ORDER BY aa.NOMBRE ASC

Siendo el resultado el que sigue:

Cita:

CODIGO NOMBRE
64749 MONOBLOC CON FILTRO INYECTADO 25KG
20500 MONO FINO BLANCO "CORONIN" TALLA- M
20501 MONO FINO BLANCO "COROVIN" TALLA- L
20502 MONO FINO BLANCO "COROVIN" TALLA- XL
20503 MONO FINO BLANCO COROVIN " TALLA - XXL
20601 MONO GORDO BLANCO "MUTEX" TALLA- L
20600 MONO GORDO BLANCO "MUTEX" TALLA- M
20602 MONO GORDO BLANCO " MUTEX" TALLA - XL
20603 MONO GORDO BLANCO "MUTEX" TALLA - XXL
20604 MONO GORDO BLANCO "MUTEX" TALLA - XXXL
50005 MONO MEDIO BLANCO
Observen que 'MONOBLOC' (primera fila) lo pone delante de 'MONO ' (segunda fila). Es decir, pone 'B' (66) delante de ' ' (32).
¿Cuál es la explicación de esto?

Gracias anticipadas.

Casimiro Notevi 11-09-2017 14:05:18

Ummm... ¿seguro?

Gregorio Cíber 11-09-2017 14:48:56

Hombre, lo que he enviado ha sido copiado del resultado de la consulta.
La verdad es que está DB tiene años y nunca se había presentado este problema.

Gregorio Cíber 11-09-2017 14:49:43

Por cierto, gracias por responder.

orodriguezca 11-09-2017 17:56:29

Muy, muy extraño. Por favor, verifica que los espacios en blanco en "MONO FINO BLANCO" sean realmente espacios en blanco (ascii 32), quizás nos llevemos una sorpresa y sean algún otro carácter.

Casimiro Notevi 11-09-2017 18:02:52

Cita:

Empezado por Gregorio Cíber (Mensaje 520984)
La verdad es que está DB tiene años y nunca se había presentado este problema.

Por eso mismo lo pregunto, porque no puede ser.
Cita:

Empezado por orodriguezca (Mensaje 520990)
Muy, muy extraño. Por favor, verifica que los espacios en blanco en "MONO FINO BLANCO" sean realmente espacios en blanco (ascii 32), quizás nos llevemos una sorpresa y sean algún otro carácter.

Por ejemplo, puede ser eso también.

balger 11-09-2017 22:20:10

Adiero a lo que dice orodriguezca. O Tengas algun caracter no visible en MONOBLOC. Si es asi reingresando el dato de debe arreglar. Otra cosa que podes hacer es volver a generar el indice.
Si todo lo anterior falla siempre esta el backup/restore.
Tambien te sugiero que migres a 2.5 como minimo. Es mucho mas estable.

Gregorio Cíber 11-09-2017 22:54:08

Gracias blager, estoy en ello. Pienso migrarla BD a 3.0, pero primero debo solucionar este problema.

Mirad, esto es lo que presenta el rograma Delphi. Como podéis ver está ordenado, ya que el componente de la tabla se encarga de ello y los caracteres 'espacio' son efectivamente ASCII 32. El problema está en el select:

Cita:

MONO FINO BLANCO "CORONIN" TALLA- M
77 79 78 79 32 70 73 78 79 32 66 76 65 78 67 79 32 34 67 79 82 79 78 73 78 34 32 84 65 76 76 65 45 32 77
MONO FINO BLANCO "COROVIN" TALLA- L
77 79 78 79 32 70 73 78 79 32 66 76 65 78 67 79 32 34 67 79 82 79 86 73 78 34 32 84 65 76 76 65 45 32 76
MONO FINO BLANCO "COROVIN" TALLA- XL
77 79 78 79 32 70 73 78 79 32 66 76 65 78 67 79 32 34 67 79 82 79 86 73 78 34 32 84 65 76 76 65 45 32 88 76
MONO FINO BLANCO COROVIN " TALLA - XXL
77 79 78 79 32 70 73 78 79 32 32 66 76 65 78 67 79 32 67 79 82 79 86 73 78 32 34 32 84 65 76 76 65 32 45 32 88 88 76
MONO GORDO BLANCO "MUTEX" TALLA- M
77 79 78 79 32 71 79 82 68 79 32 66 76 65 78 67 79 32 34 77 85 84 69 88 34 32 84 65 76 76 65 45 32 77
MONO GORDO BLANCO "MUTEX" TALLA- L
77 79 78 79 32 71 79 82 68 79 32 66 76 65 78 67 79 32 34 77 85 84 69 88 34 32 84 65 76 76 65 45 32 76
MONO GORDO BLANCO " MUTEX" TALLA - XL
77 79 78 79 32 71 79 82 68 79 32 66 76 65 78 67 79 32 34 32 77 85 84 69 88 34 32 84 65 76 76 65 32 45 32 88 76
MONO GORDO BLANCO "MUTEX" TALLA - XXL
77 79 78 79 32 71 79 82 68 79 32 66 76 65 78 67 79 32 34 77 85 84 69 88 34 32 84 65 76 76 65 32 45 32 88 88 76
MONO GORDO BLANCO "MUTEX" TALLA - XXXL
77 79 78 79 32 71 79 82 68 79 32 66 76 65 78 67 79 32 34 77 85 84 69 88 34 32 84 65 76 76 65 32 45 32 88 88 88 76
MONO MEDIO BLANCO
77 79 78 79 32 77 69 68 73 79 32 66 76 65 78 67 79
MONOBLOC CON FILTRO INYECTADO 25KG
77 79 78 79 66 76 79 67 32 67 79 78 32 70 73 76 84 82 79 32 73 78 89 69 67 84 65 68 79 32 50 53 75 71
En fin, voy a hacer backup/restore a ver qué pasa.

Gracias.

balger 11-09-2017 23:03:43

Siempre te conviene probar los Querys fuera del entorno con un administrador de DB.
Suerte.

Casimiro Notevi 11-09-2017 23:07:22

Cita:

Empezado por balger (Mensaje 521008)
Siempre te conviene probar los Querys fuera del entorno con un administrador de DB.
Suerte.

^\||/^\||/^\||/


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

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