Como reparar tablas ?

3,259 views
Skip to first unread message

fputignani

unread,
Sep 11, 2010, 7:34:41 PM9/11/10
to Comunidad de Visual Foxpro en Español
Bueno, no me deja abrirla ni examinarla, NADA
Alguna sugerencia ?

http://yfrog.com/n2tdaadaj

sip...@gmail.com

unread,
Sep 11, 2010, 8:16:37 PM9/11/10
to publice...@googlegroups.com
Hola amigo
Que versión de vfp usas ?

Si usas la nueve prueba con esto

Set tablevalidate to 0
Use mitablamala exclu

Appe blank
Delete
Pack

Y listo a mi me funciona este truco en el 99 % de los casos , la mayoría de los daños ocurre en el encabezado de la tabla y con esos pasos se restaura esos valores
Saludos espero te ayude

Alexander Barreto
Valencia Venezuela

Enviado desde mi BlackBerry de Movistar

fputignani

unread,
Sep 12, 2010, 5:44:13 AM9/12/10
to Comunidad de Visual Foxpro en Español
Si, tengo la V. 9 con el SP1

Cuando ejecuto el use exclusive me dice que "el indice no corresponde
a la tabla. Que elimine el archivo y lo vuelva a crear"
Le cambio el nombre al archivo indice .CDX de la tabla y lo vuelvo a
hacer y me dice que la propiedad de la clave principal no es valida,
que valide la base de datos.

Y la verdad no se me ocurre ni una idea de que hacer.
Gracias Alex por responder.

sip...@gmail.com

unread,
Sep 12, 2010, 8:49:30 AM9/12/10
to publice...@googlegroups.com
Amigo yo aplicó este procedimiento en el módulo donde creaba los índices y lo hacia por cada tabla te recomiendo que guardes la inf de tus índices in una tabla, en mi caso la llamo shemainf.dbf y te puede servir para guardar la estructura de las tablas de tu base de datos. luego un módulo en cada cliente lee la inf de esa tabla y sincroniza la db de mis clientes con la de desarrollo. Bueno pero ese seria otro tema en tu caso yo hago esto

Open data xxxxx excl
Lctaval=set("tablevalidatea")

Set tablevalidate to 0
Try
Use mitabla exclu
Appe blan
Delete
Pack
Reindex

Catch
Delete file nombrecdx
Use mitabla exclu
Appe blank
Delete
Pack
Reindex

*luego vuelvo a crear los índices
Index on expr1 tag index1
Index on exp2 tag index2
* y asi cuantos índices tengas


Endtry

Set tablevalidate to (lctaval)
Clos data
Espero me haya dado a entender

Saludos

fputignani

unread,
Sep 12, 2010, 4:33:07 PM9/12/10
to Comunidad de Visual Foxpro en Español
Tube que hacer las tablas de nuevo.
Como es que ocurre esto que se rompen ? como se puede prevenir ?
como sería una buena practica para usar las tablas?


Gracias por todo Alex.

sip...@gmail.com

unread,
Sep 12, 2010, 4:50:14 PM9/12/10
to publice...@googlegroups.com
Las tablas son muy susceptibles a cortes eléctricos. Un apagón o cuelgue de máquina y te daña el índice o peor aun una tabla ,claro no en el 100 % de los casos pero para prevenir esas consecuencias graves yo a nivel de software uso el flush después de un pack , reindex , actualización de una tabla
A nivel de hardware UPS en todas las pc y de esa manera solo te faltaría por un cuelgue o reseteo que ya escapa de tus manos pero con el procedimiento que te comente anteriormente lo debería reparar si el daño no es grave

Saludos

Walter R. Ojeda Valiente

unread,
Sep 12, 2010, 5:25:33 PM9/12/10
to publice...@googlegroups.com
Hola

Las tablas .DBF tienen la mala costumbre de corromperse cuando hay un corte de luz, alta tensión, baja tensión, cuelgue de computadora, etc. Y si no se corrompen ellas, se corrompen los índices .CDX

¿Cuál es la solución?

Olvidarse de las tablas .DBF y empezar a usar algún motor de SQL. El que yo utilizo es Firebird porque me ha dado excelentes resultados, es rapidísimo, muy fácil de usar y muy poderoso. Una de sus características sobresalientes es que permite hacer copias shadow muy facilmente. Además, aunque se corte la luz o se cuelgue la computadora las tablas de Firebird no se corrompen. He hecho muchísimas pruebas con tablas de hasta 1.500.000 registros y siempre los resultados fueron perfectos, nula corrupción de datos. Eso me da tranquilidad y confianza.

Además, puedes hacer backup de tu Base de Datos aunque los usuarios estén usando las tablas, lo cual permite que trabajen 24/7. Y por último, Firebird es totalmente gratis.

Saludos.

Walter.

mateamargo

unread,
Sep 12, 2010, 9:52:26 PM9/12/10
to Comunidad de Visual Foxpro en Español
Hola,
Walter me gustaría empezar a trabajar con Visual Foxpro y Firebird, me
podrías dar algún algún ejemplo de uso ?
Usas cursor adapter ? que me recomendas..
Desde ya muchas gracias

Walter R. Ojeda Valiente

unread,
Sep 12, 2010, 10:16:21 PM9/12/10
to publice...@googlegroups.com
Hola mateamargo

Entre paréntesis, ¿por qué usas un pseudónimo y no tu nombre real? No tengas miedo, nadie te comerá aquí.

Puedes usar Firebird como usarías cualquier otro motor SQL, las diferencias son muy pocas. Lo que sí te aconsejo es que utilices alguno de los programas administradores de Base de Datos Firebird, te facilitan grandemente la vida. El que yo utilizo es el SQL Manager 2010, es muy bueno, pero también podrías usar el FlameRobin, el Workbench o cualquier otro, todos funcionan muy bien.

Te comento que no soy ningún experto del Firebird, conozco algo, pero no lo suficiente como para considerarme un experto. Si tienes alguna duda, puedes preguntarme, si conozco la respuesta te la diré.

Saludos.

Walter.

claudio luna

unread,
Sep 13, 2010, 11:26:31 PM9/13/10
to Comunidad de Visual Foxpro en Español
Hola,
Walter,
Siempre use ese "nick" en los foros , mi nombre es Claudio Luna y soy
de Montevideo Uruguay.
Lo que quería fundamentalmente es saber como trabajar con tablas que
no son nativas , en este caso firebird la mejor tecnica es mediante
"cursor adapter" ???
Por favor si podes adjuntarme algúne ejemplo te agradezco desde ya tu
ayuda.
Saludos
Claudio

Nilton Cesar Puglia Menaré

unread,
Sep 14, 2010, 12:09:57 AM9/14/10
to publice...@googlegroups.com
Hola Claudio

Com FireBird ou qualquer outro banco de dados, funciona assim, você conecta a base de dados e executa um SELECT, o resultado é um cursor normal como você ja usa hoje no Foxpro. Depois pode usar o UPDATE para incluir, alterar ou excluir algum dado na base. 

Um abraço

Nilton CPM
Chuy - Uruguay




> Date: Mon, 13 Sep 2010 20:26:31 -0700

> Subject: [vfp] Re: Como reparar tablas ?

Claudio Luna

unread,
Sep 14, 2010, 12:17:42 AM9/14/10
to publice...@googlegroups.com
Gracias Nilton por tu respuesta, me refería a trabajar según vi en youtube algún ejemplo de como crear un cursor adapter y ponerlo en el DATA ENVIRONMENT del form, pero quería saber más al respecto, como por ejemplo el tratamiento de errores si se pierde la conexión, como retomarla, etc..
Desde ya muchas gracias

Nilton Cesar Puglia Menaré

unread,
Sep 14, 2010, 1:11:05 AM9/14/10
to publice...@googlegroups.com
Nunca usei CursorAdapter, uso conexão odbc com o FireBird, sobre o tratamento de erros é normal com ´On Error´ e ´Aerror()´  não tem misterio, criar algumas funcões para manipulação dos SELECT  e UPDATE e pronto.

Da algum trabalho de inicio depois é tranquilo.





Date: Tue, 14 Sep 2010 01:17:42 -0300
Subject: Re: [vfp] Re: Como reparar tablas ?

Walter R. Ojeda Valiente

unread,
Sep 14, 2010, 3:58:54 AM9/14/10
to publice...@googlegroups.com
Hola Claudio

Yo trabajo igual que Nilton, es decir hago la conexión con ODBC y los errores los obtengo con la función AERROR(). Si necesito que algún procedimiento almacenado o trigger me devuelva un código de error o alguna otra variable, coloco esos valores en los parámetros de salida y luego los recupero en el método llamante.

En general trato de programar lo máximo dentro de los procedimientos almacenados y los triggers, dejando al Visual FoxPro solamente para la parte visual de la aplicación. Por eso te había aconsejado que instalaras y usaras el SQL Manager 2010, el FlameRobin, o algún otro programa similar, te facilitarán muchísimo la vida.

Un concepto importante para trabajar con los motores SQL es que debes mantener el tráfico en la red al mínimo, de esa manera te aseguras dos cosas: alta velocidad de respuesta y confiabilidad de los datos.

Si necesitas ayuda sobre algún punto específico, hazme la pregunta que si sé la respuesta te la comentaré.

Hay un libro buenísimo sobre Firebird, su nombre es: "The Firebird Book: A Reference for Database Developers", tiene 1.128 páginas, hay mucho para leer allí. Su autora es Helen Borrie, una mujer que sobre el tema conoce muchísimo (y con la cual ya tuve algún encontronazo, como para no perder la costumbre que tengo de discutir, ja, ja, ja). Pero ella es una de las gurús del Firebird y su libro es la Biblia de este motor, sin ninguna duda. Está un poco obsoleto porque trata de la versión 1.5, ella publicó una actualización llamada "Firebird 2 Supplement for The Firebird Book" que cubre las versiones 2.0 y 2.1, pero aún no conseguí esa actualización. El libro es muy didáctico, está muy bien explicado, y es completísimo, allí encontrarás todo lo que necesites saber sobre Firebird. El único problema que quizás podrías tener es que está escrito en inglés.

Otro libro que es buenísimo es "Firebird Essencial", escrito por Carlos H. Cantú, el principal gurú brasilero de Firebird y uno de los mejores del mundo. Está escrito en portugués y también es muy completo. Si lees portugués podrías inscribirte en el sitio www.firebase.com.br, leyendo las preguntas y respuestas de su lista de correos he aprendido varias cosas (y para variar, ya tuve un encontronazo con alguien de allí también, ja, ja, ja, ja, ya no voy a cambiar. Pero todo bien).

Bueno, si tienes alguna pregunta sobre algún punto específico, sólo pregunta.

Saludos.

Walter.

william zuluaga

unread,
Sep 14, 2010, 9:14:43 AM9/14/10
to publice...@googlegroups.com
hola,
 
normalmente las tablas que se dañan son las que tienen indices, para eso en mis aplicaciones utilizo una carpeta con la extructura de cada tabla que posiblemente se dañe y creo una utilidad para que las repare el usuario cada vez que lo necesite, simplemente elimino el archivo de indice de cada tabla y bace la informacion en la copia de ellas, luego borro la tabla a corregir y la copio nuevamente de las originales. por el momento esta utilidad siempre me ha funcionado excelente y no tengo ningun problema con las tablas.


De: Walter R. Ojeda Valiente <wr...@hotmail.com>
Para: publice...@googlegroups.com
Enviado: mar,14 septiembre, 2010 02:58
Asunto: RE: [vfp] Re: Como reparar tablas ?

Claudio Luna

unread,
Sep 14, 2010, 12:08:37 PM9/14/10
to publice...@googlegroups.com
Hola Walter
Mirá en el tema estoy medio desorientado podes pasarme algun ejemplo de abm sencillo con un form con cursor adapter para ver como funciona, no quiero re-inventar la rueda poniendome a investigar sobre algo que no estoy al tanto.
Desde ya muchas gracias
Claudio

Walter R. Ojeda Valiente

unread,
Sep 14, 2010, 2:04:35 PM9/14/10
to publice...@googlegroups.com
Hola Claudio

Ya te dije que no uso cursor adapter. Con respecto a los ejemplos, no tengo un sistema completo que pueda regalarte, pero puedes hacerme las preguntas que consideres necesarias.

Saludos.

Walter.

Claudio Luna

unread,
Sep 14, 2010, 4:20:21 PM9/14/10
to publice...@googlegroups.com
Walter,
Me había olvidado de tu respuesta al respecto.
Saludos

Claudio

ibania blanco

unread,
Sep 20, 2010, 10:49:53 AM9/20/10
to Comunidad de Visual Foxpro en Español
claudio, una cosa, no mencionas nada de lo que te intruyeron el amigo
sipv, no haz probado un programa que pusieron aqui que repara tablas,
no bases, a mi me funciona bien, probalo, mandame a que correo te lo
envio, corrige tabla de maravillas, saludos

Claudio Luna

unread,
Sep 20, 2010, 11:27:15 AM9/20/10
to publice...@googlegroups.com
ibania,
no entendi lo de ""claudio, una cosa, no mencionas nada de lo que te intruyeron el amigo
sipv", por lo del programa para reparar las tablas te agradezco si me lo podes mandar a thom...@gmail.com
Desde ya muchas gracias

El 20 de septiembre de 2010 11:49, ibania blanco <ibania...@hotmail.com> escribió:
c, no haz probado un programa que pusieron aqui que repara tablas,

no bases, a mi me funciona bien, probalo, mandame a que correo te lo
envio, corrige tabla de maravillas, saludos

--
Para anular la suscripción al Grupo de la Comunidad de Visual Foxpro en Español, envía un mensaje a publicesvfoxp...@googlegroups.com

sip...@gmail.com

unread,
Sep 20, 2010, 11:34:28 AM9/20/10
to publice...@googlegroups.com
Hola ibania y si te planificas puedes crear una tabla con los índices de tu sistemas y luego los generas con los índices de esa tabla sin importar los cambios que hagas a tus índices simplemente ese módulo te crearía los índices de tus tablas después de borrarlos
Sin lanzar una linea de código adicional
Saludos

Alexander Barreto
Valencia Venezuela



Enviado desde mi BlackBerry de Movistar

-----Original Message-----
From: ibania blanco <ibania...@hotmail.com>
Sender: publice...@googlegroups.com
Date: Mon, 20 Sep 2010 07:49:53
To: Comunidad de Visual Foxpro en Español<publice...@googlegroups.com>
Reply-To: publice...@googlegroups.com
Subject: [vfp] Re: Como reparar tablas ?

ibania blanco

unread,
Sep 23, 2010, 4:35:48 PM9/23/10
to Comunidad de Visual Foxpro en Español
te hablaba de estos comandos y si los pusistes a prueba

Set tablevalidate to 0
Use mitablamala exclu

Appe blank
Delete
Pack

no entiendo como voy a crear los indices de una tabla dañada, que no
se deja ni abrir, como hacer para abrir la tabla, si primero la tengo
que colocar en uso, use mitabla exclusive, si no deja

http://groups.google.com.pe/group/mundovisualfoxpro/files
se llama repara.prg

ibania blanco

unread,
Sep 23, 2010, 4:41:54 PM9/23/10
to Comunidad de Visual Foxpro en Español
colocandole esa instruccion si la habre perdon
primero borro los indices luego

mando esta instruccion
Set tablevalidate to 0
Use mitablamala exclu
Appe blank
Delete
Pack

y genero los indices

gracias ya entendi

Manuel Zevallos

unread,
Sep 23, 2010, 4:44:27 PM9/23/10
to publice...@googlegroups.com
Estimados-...aqui les paso esto. Yo con esto arreglo mis tablas.
La forma de como se usa esta en la primera linea del archivo.

--

Atte.,

Manuel Zevallos
repara.zip

felix zelada

unread,
Sep 30, 2010, 8:03:45 PM9/30/10
to publice...@googlegroups.com
hola amigo foxero
yo utilize esta aplicacion que me encontre en un foro y es simplemente excelente espero les sirva a todos los que puedan necesitarlo
nota. click en selec table
        click en structure compare (comparar la estructura con la misma tabla a reparar y listo salir y ok tabla reparada.)
cmrepair.app

José Anthony Contreras Peralta

unread,
Sep 30, 2010, 11:09:18 PM9/30/10
to publice...@googlegroups.com
Para validar base de datos de VFP

OPEN DATABASE NombreBaseDatos
VALIDATE DATABASE recover

Saludos desde Costa Rica

zeiang perez

unread,
Dec 22, 2013, 1:40:38 AM12/22/13
to publice...@googlegroups.com
Muchas gracias por tu valiosa aportación, me ha servido bastante!
Reply all
Reply to author
Forward
0 new messages