Normalmente tendrías que ejecutar la consulta cada vez que cambies el orden.
Si los datos que presentas no son demasiados (y no deben serlo en ninguna circunstancia en realidad) puedes usar ClientDataSets que se comportan igual que cualquier otro DataSet pero almacenando en memoria todos los registros de manera que puedes reordenar sobre cualquier columna simplemente cambiando su propiedad IndexName aun cuando en la base de datos no existan índices para esas columnas.
// Saludos
|