PDA

Ver la Versión Completa : Ordenación espacio (32) en Firebird


Gregorio Cíber
11-09-2017, 11:04:13
¡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:

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:


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, 13:05:18
Ummm... ¿seguro?

Gregorio Cíber
11-09-2017, 13: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, 13:49:43
Por cierto, gracias por responder.

orodriguezca
11-09-2017, 16: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, 17:02:52
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.
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, 21: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, 21: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:

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, 22:03:43
Siempre te conviene probar los Querys fuera del entorno con un administrador de DB.
Suerte.

Casimiro Notevi
11-09-2017, 22:07:22
Siempre te conviene probar los Querys fuera del entorno con un administrador de DB.
Suerte.
^\||/^\||/^\||/