Delphi7 e indices con expresiones
Estoy convirtiendo una aplicación que utiliza ficheros dBase (aún) a D7 (viene de D5) y me he encontrado con un problema que no se resolver.
En un par de tablas tengo indices con expresiones del tipo "STR(ID_ART,10)+STR(ID_PROV,10)", tengo puesto que el indices es único y de expresión [ixUnique,ixExpression] y cuando creo los indices me salta una excepción diciendo "Invalid index descriptor". El mismo código en D5 si que funciona... :confused: ¿Alguien sabe algo del tema? Porque he buscado en el foro, en Google, y no aparece nada, eso me hace confirmar que posiblemente sea fallo mío, pero no lo encuentro. PLEASE HELP ME!!! ;) |
Pues en un principio no veo porque no vaya a funcionar en D7, teniendo en cuenta que en ambos caso se está utilizando el BDE, tendrás el alias bien configurado para Dbase? Desde dónde creas los índices desde el DatabaseDesktop o lo haces por código?.
Un Saludo. |
Los indices los recreo por código, en un proceso de reindexado que llevo utilizando en D5 desde hace tiempo. No se... continuamos investigando.
Gracias. |
Funciones de D5 y D7
tal vez sea que en Delphi 7 no existen las funciones STR, sino que si tu campo es numerio entero necesitas usar INTTOSTR, si es numerico flotante necesitas usar FLOATTOSTR etc..etc...
|
Pues parece que el tema está relacionado en que no se porque diferencia entre D5 y D7 los IndexDefs, cuando llegan a mi función que reindexa han perdido la propiedad Expression, es decir, está vacía :eek: y, evidentemente, me da el susodicho error porque estoy intentando crear un índice sin expresión y sin campos... :rolleyes:
Continuaremos informando ... Gracias. |
Por fin...
A ver, tenía en el código lo siguiente:
Para guardarme los índices, porque lo que hago es crear desde cero una copia del DBF... Pues eso en D5 funciona y en D7 no, con índices Expression... :eek: Creo que tiene algo que ver con que al asignar la propiedad Expression del TIndexDef correspondiente se limpia el Fields y viceversa, al final tengo.
Bueno... solucionado. Gracias a todos. |
La franja horaria es GMT +2. Ahora son las 19:32:50. |
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