Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ordernar a acentos y eñes (tablas dbase) (https://www.clubdelphi.com/foros/showthread.php?t=5224)

Jose_Pérez 13-11-2003 15:42:34

Ordernar a acentos y eñes (tablas dbase)
 
Hola:

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

Ejemplo:

Código:

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 10: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.

Código:

  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 15:49:20

Me faltó abrir el Query.

El código quedaría así:

Código:

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



La franja horaria es GMT +2. Ahora son las 02:16:14.

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