FoxPro/Visual FoxPro - AYUDA!!!! Error en Table

   
Vista:

AYUDA!!!! Error en Table

Publicado por Pablo (Argentina) (433 intervenciones) el 12/12/2009 14:02:46
Hola Amigos del foro, necesito Ayuda urgente a ver si me pueden ayudar con un error que no se porque se origino con una de mi tablas.

Resulta ser que cuando la voy a abrir me dice que la tabla "Esta dañada" y que necesita repararse antes de volver a usar, la cuestion es que nunca repare un DBF y no se como hacerlo.
Busque ese error en la Ayuda del VFP 9 y me dice Table "name" has become corrupted. The table will need to be repaired before using again. (Error 2091)

Entiendo lo que dice, pero no se como se repara para volver a usarla, ni siquiera la puedo abrir como para explorarla o algo, ni ideaa.

Si me pueden ayudar, desde ya muchas gracias a todos

Pablo - Argentina
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AYUDA!!!! Error en Table

Publicado por alberto (399 intervenciones) el 12/12/2009 19:44:13
hola pablo mira esta rutina la dejo mauricio del foro , yo no la he probado pero parece reparar las tablas, te la comento

El error que Visual Foxpro regresa cuando se corrompe el encabezado de una tabla y no podemos abrirla.
*
La siguiente rutina calcula el número de registros que contiene la tabla y los compara con el contenido del encabezado de la misma y de ser necesario, lo repara.
*-----------------
*- Reparar tabla -
*-----------------
FUNCTION _ReparaEncabezado(cTabla)

LOCAL nArea,nTamañoTabla,nRegistros,nTamañoencabezado,;
nTamañoRegistro,nRegistrosCalculados

nArea=FOPEN(cTabla,12)
nTamañoTabla=FSEEK(nArea,0,2)

nRegistros=_Lee(nArea, 4,4)
nTamañoEncabezado=_Lee(nArea, 8,2)
nTamañoRegistro=_Lee(nArea,10,2)

nRegistrosCalculados=FLOOR((nTamañoTabla-nTamañoEncabezado)/;
nTamañoRegistro)
IF nRegistrosCalculados#nRegistros
_Escribe(nArea,4,4,nRegistrosCalculados)
ENDIF

=FCLOSE(nArea)

ENDFUNC

*------------------
*- Lee encabezado -
*------------------
FUNCTION _Lee(nArea,nPosicion,nTamaño)

LOCAL cCadena,nValor,nSubInd

=FSEEK(nArea,nPosicion,0)
cCadena=FREAD(nArea, nTamaño)
nValor = 0
FOR nSubInd=0 TO nTamaño-1
nValor=nValor+ASC(SUBSTR(cCadena,nSubInd+1))*256^nSubInd
ENDFOR

RETURN INT(nValor)

ENDFUNC

*------------------------
*- Reescribe encabezado -
*------------------------
FUNCTION _Escribe(nArea,nPosicion,nTamaño,nNumero)

LOCAL cCadena,nSubInd

cCadena=''
FOR nSubInd=0 TO nTamaño-1
cCadena=cCadena+CHR(nNumero/256^nSubInd%256)
ENDFOR

=FSEEK(nArea, nPosicion,0)

RETURN FWRITE(nArea,cCadena)

ENDFUNC
Es recomendable que en las rutinas de mantenimiento de archivos se elimine primero el indice (CDX), se revise el encabezado con la rutina anterior y posteriormente se generen los indices de nuevo.

*------------------------

yo he bajado tambien el cmrepairt de la web , buscala y fijate si te da resultado, tambien puedes probar de abrir la tabla desde excel y la guardas en formato dbf,
prueba y me cuentas como te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA!!!! Error en Table

Publicado por alberto (399 intervenciones) el 12/12/2009 19:52:13
esta puede ser otra opcion , debes tener fox 8 o 9

La forma mas practica es:
1-Poner el comando SET TABLEVALIDATE TO 0
2- USE tutabla
3- BROWSE
4-Copiar el contenido a otra tabla con COPY TO y por supuesto renombrar esa.

prueba y me comentas.
saludos y suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA!!!! Error en Table

Publicado por macoso12 (1 intervención) el 10/05/2010 16:58:43
Viejo Gracias por la ayuda de este post
me funciono nitido.....
luego vinieron otros problemitas pero se resuelve mas facil
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA!!!! Error en Table

Publicado por alberto (399 intervenciones) el 12/12/2009 20:14:45
otra opcion pablo puede ser :

set tablevalidate to 0 /// fox desde la version 8
use (mitabla)
browse
copy to (tabla.dbf)
despues renombras tu tabla copiada y creas los indices de nuevo
esto lo he leido en el foro, yo gracias a dios todavia nunca me tope con este problema.
saludos y me cuentas ......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA!!!! Error en Table

Publicado por neo (1601 intervenciones) el 14/12/2009 18:22:48
este lo hace casi de forma automatica.. yo lo he usado y me funciona muy bien

http://www.portalfox.com/index.php?name=Web_Links&req=viewlink&cid=26

el prg o archivo de llama CM Repair

Desde portalFox

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA!!!! Error en Table

Publicado por Pablo (Argentina) (433 intervenciones) el 14/12/2009 22:31:23
Hola Alberto y Neo, Bueno les comento que ya resolvi por suerte en forma rapida el problema, perdon por la tardanza mia en la respuesta de si me funciono o no.

Les cuento que tengo VFP 9 y use la opcion del SET TABLEVALIDATE 0 y las 4 lineas que le siguen que uds publicaron, esa opcion ya la habia leido tambien en este foro publicada por Mauricio, la verdad es que si funciono a la perfeccion y no tuve que crear indice de nuevo ni nada de eso, hice eso 4 pasos y listo salio andando todo bien. La verdad es que no se porque se origina ese problema pero les puedo asegurar que se les cae todo el animo al piso sino tienen una copia de seguridad al dia como me paso a mi que hacia 2 dias que no la hizo y habia un monton de datos cargados en dicha tabla.

Asi que para prevencion, hagan copia de seguridad mas seguido y ya saben que esta opcion funciona.

Muchas Gracias a todos

Pablo - Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA!!!! Error en Table

Publicado por alberto (399 intervenciones) el 15/12/2009 01:49:12
tienes razon pablo yo a mis clientes le digo que hagan copias de seguridad cada 2 o 3 dias, pero no me dan bola, yo lo indico y si ellos no lo hacen problema de ellos, gracias por responder voy a tener en cuenta esa rutina, nunca me paso pero puede pasar .....
saludos pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar