Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-06-2006
Troffed Troffed is offline
Miembro
 
Registrado: mar 2004
Posts: 51
Poder: 21
Troffed Va por buen camino
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...

¿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!!!
__________________
"De la ignorancia nos equivocamos,
de los errores aprendemos."
---
www.softinspain.com
Responder Con Cita
  #2  
Antiguo 23-06-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 28-06-2006
Troffed Troffed is offline
Miembro
 
Registrado: mar 2004
Posts: 51
Poder: 21
Troffed Va por buen camino
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.
__________________
"De la ignorancia nos equivocamos,
de los errores aprendemos."
---
www.softinspain.com
Responder Con Cita
  #4  
Antiguo 28-06-2006
Ing_Fajardo Ing_Fajardo is offline
Miembro
 
Registrado: abr 2005
Ubicación: Mexico
Posts: 46
Poder: 0
Ing_Fajardo Va por buen camino
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...
Responder Con Cita
  #5  
Antiguo 28-06-2006
Troffed Troffed is offline
Miembro
 
Registrado: mar 2004
Posts: 51
Poder: 21
Troffed Va por buen camino
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 y, evidentemente, me da el susodicho error porque estoy intentando crear un índice sin expresión y sin campos...

Continuaremos informando ...

Gracias.
__________________
"De la ignorancia nos equivocamos,
de los errores aprendemos."
---
www.softinspain.com
Responder Con Cita
  #6  
Antiguo 28-06-2006
Troffed Troffed is offline
Miembro
 
Registrado: mar 2004
Posts: 51
Poder: 21
Troffed Va por buen camino
Por fin...

A ver, tenía en el código lo siguiente:

Código Delphi [-]

IdxList := TIndexDefs.Create(nil);
IdxList.Assign(tbl.IndexDefs);


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... 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.

Código Delphi [-]
IdxList := TIndexDefs.Create(nil);
for i := 0 to tbl.IndexDefs.Count - 1 do
begin
  o := tbl.IndexDefs[i];
  d := IdxList.AddIndexDef;
  d.Name := o.Name;
  d.Options := o.Options;
  d.Source := o.Source;
  if o.Expression <> '' then
    d.Expression := o.Expression
  else
    d.Fields := o.Fields;
end;


Bueno... solucionado. Gracias a todos.
__________________
"De la ignorancia nos equivocamos,
de los errores aprendemos."
---
www.softinspain.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
donde puedo comprar libros en mexico, la biblia de delphi7 y mastering delphi7? sakuragi Varios 30 12-02-2013 18:37:51
expresiones regulares en sql jonmendi SQL 1 24-12-2004 15:28:39
Expresiones en QReport StartKill Impresión 4 31-05-2004 23:20:29
Expresiones matemáticas Pandre Varios 0 04-09-2003 01:43:49
Expresiones regulares roman Varios 1 18-08-2003 17:08:37


La franja horaria es GMT +2. Ahora son las 02:08:31.


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
Copyright 1996-2007 Club Delphi