Ver Mensaje Individual
  #4  
Antiguo 18-04-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.233
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Normalmente cuando se trabaja con SGBD's (Sistemas de Gestión de Base de Datos) no se aplican índices a nivel de componentes, porque se supone que ese trabajado de planificación y optimización queda a cargo del servidor de Bases de Datos. A diferencia de cuando trabajamos con Bases de datos locales(DBase, Accesss, Paradox,...) que ese trabajo quedaba para el programador.

Muchos componentes actuales siguen manteniendo esas propiedades por compatibilidad o simplemente porque entre los componenetes disponibles (aunque trabajemos con SGBD's) sigue existiendo uno para trabajar en memoria (TFDMemTable en el caso de FireDAC).

En ese caso sí tiene sentido trabajar con índices porque estamos convirtiendo el trabajo con un servidor de Base de Datos en un trabajo similar a una Base de Datos de escritorio, ya que TFDMemTable lo que hace es traer todos los datos de la tabla a memoria.
Para ellos debes definir los índices en la propiedad Indexes y luego activar el que quieras utilizando la propiedad IndexName.

El el caso de TFDTable tal y como te he dicho puedes:

1) Definir los índices en Indexes y liuego activarlo con IndexName
2) Definiendo directamente la propiedad IndexFieldName que es excluyente con la anterior.

En ambos casos lo que hece el SGBD es "convertir" eso en un ORDER BY en la Base de Datos.

La otra opción en estos casos, es utilizar un TFDQuery y definir la sentencia SQL necesaria con la parte ORDER BY que necesitemos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita