BUSQUEDA CON INDICES
tENGO UN PROBLEMA CON UNA BÚSQUEDA EN UNA TABLA, NO TOMA EL ÍNDICE Y BUSCAR ENTRE 300 REGISTROS TARDA UNOS 20 MINUTOS.
LA TABLA TIENE UN INDICE IFACTURA DEFINIDO EN EL DATABASEDESTOCK COMO SECONDARY INDEXES Y UNICO POR LOS CAMPOS SERIE Y NFACTURA, SERIE ES DE TIPO STRING Y NFACTURA DE TIPO INTEGER .
nO PDRÉ TENER UN ÍNDICE QUE SEA STRING + INTEGER??
A LA HORA DE BUSCARLO HAGO:
ModuloDatos.TFacturas.SetKey;
ModuloDatos.TFacturas['Serie'] := Pserie.Text;
ModuloDatos.TFacturas['NFactura'] := PnFactura.Text;
IF ModuloDatos.TFacturas.FindKey([PSerie.Text, PnFactura.Text]) THEN
Mostrar_Datos;
¿PORQUÉ NO ME BUSCA POR EL ÍNDICE
LA TABLA TIENE UN INDICE IFACTURA DEFINIDO EN EL DATABASEDESTOCK COMO SECONDARY INDEXES Y UNICO POR LOS CAMPOS SERIE Y NFACTURA, SERIE ES DE TIPO STRING Y NFACTURA DE TIPO INTEGER .
nO PDRÉ TENER UN ÍNDICE QUE SEA STRING + INTEGER??
A LA HORA DE BUSCARLO HAGO:
ModuloDatos.TFacturas.SetKey;
ModuloDatos.TFacturas['Serie'] := Pserie.Text;
ModuloDatos.TFacturas['NFactura'] := PnFactura.Text;
IF ModuloDatos.TFacturas.FindKey([PSerie.Text, PnFactura.Text]) THEN
Mostrar_Datos;
¿PORQUÉ NO ME BUSCA POR EL ÍNDICE
quizas no estes cambiando tu indice en la tabla de tu modulo de datos, por otro lado te recomendaria que para las busquedas uses el metodo locate()
Tabla->Locate("campo","valor". TLocateOptions() ) y asi no te precuparias de que indice esta activo, aparte es muy eficiente
Tabla->Locate("campo","valor". TLocateOptions() ) y asi no te precuparias de que indice esta activo, aparte es muy eficiente
