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.
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


0