PDA

Ver la Versión Completa : Ordernar a acentos y eñes (tablas dbase)


Jose_Pérez
13-11-2003, 16:42:34
Hola:

Este es un tema a menudo tratado en el foro, sin embargo, no he podido encontrar una solución para tablas dBASE.

Ejemplo:


Select Nombre form Tabla Order by Nombre


¿Cómo hacer para que los acentos y las eñes se ordenen correctamente?.

Jose_Pérez
17-11-2003, 11:52:07
Hola:

He encontrado una solución, que si bien no es la más elegante, podría servir para resolver este tipo de problema en cualquier tipo de tablas (sólo lo he probado con una tabla DBASE), sin rompernos demasiado la cabeza.

La librería RX tiene un componente que actúa como una tabla en memoria (TRXMemoryData). Pues bien, el truco está en una vez realizada la consulta SQL, volcar el resultado al TRXMemoryData, y decirle que campo queremos ordenar. En este componente los acentos se ordenan correctamente.


Query.Add('Select Nombre from tabla') // No es necesario Order by
RxMemoryData.Open;
RxMemoryData.LoadFromDataSet(Query1,0,lmCopy);
RxMemoryData.SortOnFields('Nombre');


TRxMemoryDAta no necesita utilizar el BDE ni la DLL DBClient. Además, actúa como un TDataSet y puede conectarse a componentes data-aware.

Un abrazo.

Jose_Pérez
17-11-2003, 16:49:20
Me faltó abrir el Query.

El código quedaría así:


Query.Add('Select Nombre from tabla') // No es necesario Order by
Query.Open;
RxMemoryData.Open;
RxMemoryData.LoadFromDataSet(Query1,0,lmCopy);
RxMemoryData.SortOnFields('Nombre');