Ver Mensaje Individual
  #6  
Antiguo 09-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Jere_84.

Así es. Creo que este fragmento de La cara oculta de Delphi 4 lo explica más claramente:

Cita:
(Pag. 406)

¿ Por qué existe SetKey ?
Además de cualquier motivo filosófico o espiritual que puedan alegar ciertos libros de Delphi que circulan por ahí, Setkey existe por que existen los índices de expresiones de dBase; de no ser por esta razón, SetKey pudiera quedar como un método interno de la implementación de la VCL.

En este tipo de índices, FindKey y FindNearest se niegan rotundamente a trabajar: el primer paso de estos métodos es "repartir" los valores de lista pasada como parámetro entre los campos que forman el índice. per en un índice de expresiones no es sencillo determinar cuáles son los campos que forman el índice; en realidad es algo que no se intenta en absoluto.

Por ejemplo, tomemos una tabla que tenga los campos Nombre y Apellidos, y cuyo índice activo sea un índice basado en la expresion Nombre + Apellidos. Hay dos campos involucrados en el índice, y un programador inocente puede verse tentado a programar algo así:

Table1.FindKey(['Howard', 'Lovecraft']); // No funciona

¿ Cuál es el valor que debe tomarse como nombre y cuál debe tomarse como apellido ? Delphi no lo sabe. Y tanto FindKey como FindNearest están programados para lanzar una excepción si el índice activo es un índice de expresiones.
...
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita