FoxPro/Visual FoxPro - Append FROM en Tabla de Base de Datos

   
Vista:

Append FROM en Tabla de Base de Datos

Publicado por Javier (265 intervenciones) el 15/07/2008 17:45:06
Hola a todos:
Necesito que me ayuden con un problema.
Tengo una tabla DETALLE.dbf que integra una BASE DE DATOS. La misma posee dos índices.
Se me presenta el error de "unicidad de índice" al hacer un APPEND FROM de una tabla auxiliar.
Antes del APPEND FROM elimino los registros de la tabla DETALLE. ( SET DELETE ESTA EN ON) y al hacer al APPEND FROM se me presenta el error mencionado.
El error NO se presenta si luego del DELETE en DETALLE.DBF hago un PACK.
La pregunta es: Si los registros en DETALLE.DBF "no existen" , ¿porque estoy "infrigiendo" la unicidad de uno los índices de DETALLE.DBF? ¿Es necesario eliminar los registros fisicamente con PACK para que el error no se presente, o hay otra forma?
Uso VFP9 SP1.
Desde ya muchas gracias por la ayuda.
Saludos
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:Append FROM en Tabla de Base de Datos

Publicado por enrique (1041 intervenciones) el 15/07/2008 17:55:56
El comando DELETE marca los registros para borrar pero fisicamente siguen existiendo, por lo cual al hacer un APPEND desde una tabla con indice principal te produce el error si hay algun registro repetido.
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:Append FROM en Tabla de Base de Datos

Publicado por Javier (265 intervenciones) el 17/07/2008 15:43:27
Gracias Enrique, lo solucioné poniendo como filtro .NOT. Deleted() en los indices de la tabla. ( En el diseñador de tablas)
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:Append FROM en Tabla de Base de Datos

Publicado por tito (311 intervenciones) el 20/07/2008 18:27:54
Si, pero la tabla ira creciendo en tamaño en forma indefinida, y cuando los registros sean muchos (visibles + invisibles) se tornará lenta. Si la tabla es de tipo local, la puedes abrir en forma exclusiva entonces le das un ZAP.
Evita dar soluciones inmediatistas como ocurre con algunos programadores. Lo importante es siempre pensar en lo que sucedera mas adelante y sobre todo que sea facil ubicar errores y efectuar las modificaciones.
Saludos,
TITO
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:Append FROM en Tabla de Base de Datos

Publicado por Para TITO (1 intervención) el 24/07/2008 19:09:56
Estimado: No voy a evitar dar soluciones inmediatistas, sobre todo sin son simplemente "eso" : SOLUCIONES. De todas formas no sé a quien "LE DÍ" tal solución. Solo fue un comentario para Enrique en esta caso, que tuvo la amabilidad de contestarme.

Antes de perder el tiempo escribiendo tu post, te pusiste a pensar que a la tabla en cuestión se le hace "mantenimiento" diferido? Es decir se ejecuta pack y se reindexa en otro momento cuando las tablas no son usadas? Con otro prg obvio.

Debiste preveer eso ya que te gusta aconsejar sobre el futuro...
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