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 15-03-2012
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
Conexión Tablas FoxPro .Dbf

Tenía una conexión con tablas FoxPro mediante BDE, pero al actualizar el programa que controla dichas tablas ha dejado de funcionarme.

El error que me arroja es "Invalid Index descriptor".

La conexión no modifica nada, es un simple select para cruzar unos datos.

Curiosamente si trato de abrir otras tablas de la misma aplicación me funciona la conexión actual, pero la tabla que necesito es la que no me funciona.

Estoy intentando una conexión con ADO pero tampoco me funciona.

A ver si alguien ha tenido este problema y lo ha resuelto.

Situación anterior7, Windows7 y BDE atacando con un TQuery (funcionaba)
Situación actual :La misma, sospecho que hay algún cambio en la cabecera de la tabla.

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
  #2  
Antiguo 15-03-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.461
Poder: 21
newtron Va camino a la fama
¿Es posible que el BDE haya cascado?
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 15-03-2012
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
No porque si intento conectarme a otras tablas de la misma aplicación lo hace, creo que el problema es que la tabla tiene algo en la cabecera que despista al BDE y por eso da el fallo.

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
  #4  
Antiguo 15-03-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Un pregunta ingenua: ¿has probado borrar los índices de la tabla?

// Saludos
Responder Con Cita
  #5  
Antiguo 16-03-2012
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
La Aplicación trae una utilería para reconstruir los índices. Los he reconstruido, los he borrado y creado de nuevo, he tomado una tabla más antigua vacía y le he pasado los registros con Access, realmente ya no sé que hacer.

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
  #6  
Antiguo 16-03-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira si puedes reconstruir la cabecera del mismo, puede que se haya estropeado. Lo más fácil es coger cualquier backup que tengas de ese fichero y comprobar que los campos estén iguales. También se puede copiar completamente la cabecera "buena" encima de la de este fichero y modificar el indicador de número de registros que tiene.
Responder Con Cita
  #7  
Antiguo 16-03-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola,

por lo que describes en tu problema supongo que son las tablas del programa facturaplus. A mi me pasaba con la tabla articulo.dbf, albclil.dbf y alguna más, eran tres o cuatro, creo que conseguí resolverlo poniendo, en un TTable, en la propiedad TableName la ruta completa de la tabla, en TableType el valor ttFoxPro y luego añadiendo el fichero de índices en la propiedad IndexFiles, te ponías en IndexDefs para comprobar que te cargaba bien el índice y entonces me dejaba conectarme.

Te digo que creo que conseguí resolverlo porque no lo puedo comprobar ya que hace 3 días hemos cargado una nueva actualización del facturaplus para la nueva normativa del 347 y lo que ocurre es que, al ir a probar esto que te comento, me doy cuenta de que ya no me da error ninguna tabla, no se si es que han corregido algo pero de momento funcionan todas las tablas.

Espero que algo de esto te sirva de ayuda.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #8  
Antiguo 30-03-2012
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
No ha habido manera de conectarse, así que he implementado una opción de urgencia puesto que solamente se trata de cruzar datos no de escribir en las tablas.

Como el Byte 29 es donde reside si la tabla tiene índices o no he hecho una copia de la tabla cada vez que entro con el motivo de que ésta este lo mas actualizada posible y luego le he cambiado el byte que es 01 por 00, y ya lo tengo funcionando.
Código Delphi [-]
procedure KillConta();
var
mystream : tfilestream;
FileName: String;
pOrigen,pDestino:Pchar;
Value:Longint;
begin
Value:=00;
FileName:='\\Servidor\CNdbf\XXX.dbf';
pOrigen:='\\Servidor\XXX\ConXXX\EmpXX\XXX.dbf';
pDestino:='\\Servidor\CNdbf\XXX.dbf';
Try
CopyFile(pOrigen,pDestino,False);
Except
ShowMessage('Error al copiar el Fichero XXXX.');
end;

mystream := tfilestream.create(filename,
            fmOpenWrite + fmShareExclusive);
  try
    mystream.Seek(28, soFromBeginning);
    mystream.Writebuffer(Value, SizeOf(Value));
  finally
    mystream.Free;
  end;
end;

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
  #9  
Antiguo 30-03-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Y, digo yo, ¿no serviría hacer esto?

1. Creas una copia limpia (misma estructura, sin índices y sin datos) de la tabla original.
2. Usas el truco del byte 29 para abrir la tabal original
3. Copias uno a uno los registros de la tabla original a la nueva.
4. Pones los índices a la tabla nueva.
5. Usas la tabla nueva.

// Saludos
Responder Con Cita
  #10  
Antiguo 30-03-2012
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
Román: Es que el único problema es que la tabla no se podía abrir y para hacer los cruces como la ataco con SQL los índices no me hacen falta. Ese es el motivo de hacer solamente la copia de la tabla y no de los índices, además en el momento que cambio el Byte 29 a 01 como en la situación original dejo de poder acceder y me reporta un error, otra posibilidad que estoy pensando aunque estoy satisfecho con la actual es intentar acceder por ejemplo con ADO, cosa que no sé si será posible.

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
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
Crear tablas FoxPro con ADOCommand yusnerqui Varios 3 27-10-2005 19:01:09
De tablas en visual foxpro 6 a MS SQL Server Jorge Taveras Tablas planas 2 18-03-2005 04:43:01
¿Bloquear registros en tablas foxpro 2.6? ALMERA Conexión con bases de datos 0 25-03-2004 11:42:49
Conexión con tablas foxpro ALMERA Conexión con bases de datos 4 16-03-2004 15:12:38
Problemas al acceder a tablas Foxpro sanluisme Conexión con bases de datos 4 04-03-2004 09:49:34


La franja horaria es GMT +2. Ahora son las 12:09:11.


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