FoxPro/Visual FoxPro - duda condelete e insert con integridad referencial

 
Vista:

duda condelete e insert con integridad referencial

Publicado por Juan Carlos Jocop Arriola (5 intervenciones) el 05/11/2005 07:06:46
Tengo dos archivos relacionados, digamos facturas (maestro) y facturasdet (detalle), relacionados con la llave "FACTURA".

Un usuario ingresa los datos "facturas" (maestro) por la mañana.
Otro usuario, por la tarde, ingresa los datos a "facturasdet".

Por alguna razón el usuario de la tarde se equivoca y decide borrar los datos del detalle de una factura y luego decide volver a ingresarlos, pero al momento de grabar, el "visual fox" le indica "error en la integridad de la base de datos No. 1884, se infringe la unicidad de la llave <factura>".

Cuando se borra el detalle solo se hace DELETE. La instruccion PACK no se utiliza porque el programa es multiusuario y varios usuarios ingresan informacion.

Como el detalle de la factura y existe (solo que oculto por que no se le hizo PACK) entonces al tratar de grabar de nuevo el detalle con el mismo numero de factura es que sale este error.

En este caso, SÍ es necesario borrar algun detalle cuando el usuario se equivoca, pero al volver a ingresar los datos correctos con el mismo numero de factura se obtiene este error. Qué se puede hacer. En la regla de integridad referencial de estos dos archivos para la insercion esta colocada la instruccion IGNORE.

Gracias por su ayuda.
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:duda condelete e insert con integridad referenc

Publicado por Ángel I. (86 intervenciones) el 05/11/2005 23:38:08
Prueba a ponerle lo siguiente en el filtro del índice principal (único) del detalle de facturas (facturasdet):

.NOT.DELETED()

para evitar te reconozca los que has borrado con delete.

Suerte.
Ángel.
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