FoxPro/Visual FoxPro - Estoy en emergencia HELP!!!

 
Vista:
sin imagen de perfil

Estoy en emergencia HELP!!!

Publicado por Elio Mora (23 intervenciones) el 26/12/2000 00:00:00
Saludos a todos. mis colegas,... en este momento como lo saben estoy pagando mi noviciado en VFP 6.0, mi nueva consulta es la siguiente:
- Tengo problemas con un indice de una tabla que esta en una base de datos, el cual tiene dos ordenamiento uno por el numero (COB_NUMERO) y el otro por la fecha de emision (COB_EMISION), en tiempo de ejecución el Fox me inidca que debo borrar el indice y debo crearlo de nuevo,...
"El sistema en cueti´´on es una sistema entregado por instaladores NO tengo el visual FOx instalado en el equipo del cliente..."
LA CONSULTA ES COMO PUEDO HACER PARA ELIMINAR EL INDICE (.CDX) Y VOLVERLO A CREAR CON EL ORDENACION INICIAL... EN TIEMPO DE EJECUCION POR EL USUARIO FINAL, es decir, por un modulo de mantenimiento... Gracias a todos y FELIZ NAVIDAD!
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:Estoy en emergencia HELP!!!

Publicado por Marga del Pino (10 intervenciones) el 27/12/2000 00:00:00
Hola Elio:
Por lo general en mis aplicaciones pongo en el menú principal una opción de nombre Utiles (puede ser otro nombre como por ejemplo Accesorios) que contiene opciones de mantenimiento, como por ejemplo Resguardar Base de Datos, Traspasar Base de Datos previamente resguardada, Indizar Ficheros, etc.
La opción de Indizar Ficheros me conduce a submenues donde la primera opción es indizar todos los ficheros, y las restantes Indizar subconjuntos de las tablas, que a su vez llevan a submenues donde cada opcion es indizar una tabla específica. Cuando se llega a una opción final se llama a un formulario con barra de progreso incluida donde se indizan todas las tablas o solamente la tabla elegida en las opcciones del menú.

El evento activate de ese formulario hace algo como lo siguiente:

IF M.inform=0 OR m.inform=1 OR m.inform=11 OR m.inform=111
USE cdttrab && 17
DELETE TAG ALL
.muestra(totr)
ALTER TABLE cdttrab ADD PRIMARY KEY cod TAG cod
ENDIF
IF M.inform=0 OR m.inform=1 OR m.inform=11 OR m.inform=112
USE cdmov && 18
DELETE TAG ALL
.muestra(totr)
INDEX ON DESC TAG DESC
INDEX ON tipo+tipotrab TAG tipo
ALTER TABLE cdmov ADD PRIMARY KEY cod TAG cod ;
ADD FOREIGN KEY tipotrab TAG tipotrab REFERENCES cdttrab TAG cod
ENDIF
......

m.inform=0 significa que se indizaran todas las tablas de la BD.
m.inform<>0 es cuando se eligió una tabla o conjunto de tablas, en este caso hay 4 niveles de agrupamiento de las tablas, indicados por la cantidad de digitos de la variable
.muestra es el event
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
sin imagen de perfil

Mil Gracias Marga...

Publicado por Elio Mora (23 intervenciones) el 10/01/2001 00:00:00
Mil gracias por tu ayuda Marga, desde aqui mi rincon de trabajo te deseo una muy feliz navidad y un un muy prospero año en sabiduria y salud...
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