Oracle - ¿Cómo puedo evitar que me de el error...?

 
Vista:

¿Cómo puedo evitar que me de el error...?

Publicado por Cabalakis (10 intervenciones) el 11/05/2004 20:43:58
Buenas tardes:
Tengo un bloque padre con una serie de productos y en dicho bloque tengo un importe total, en el hijo tengo los tipos de productos con sus precios, y según voy agregando productos, el campo importe del bloque padre me aumenta.
Hasta aquí no tengo ningún problema, pero dicho importe total del bloque padre, lo puedo modificar, si lo modifico la primera vez, no tengo ningún problema; pero cuando lo hago la segundo vez, me salta un error de que no se puede modificar el campo ya que ha sido actualizado por otro usuario y que para poder modificarlo, tengo que volver a ejecutar la consulta. Cuando la ejecuto, no me da este problema, pero no puedo volver a ejecutar la consulta porque sino perdería la posición del bloque padre(ya que el execute_query va sobre el padre).
¿Alguién podría indicarme como puede evitar este error y poder modificar tantas veces como quiera el total importe?

PD: El campo importe del padre pertence a la base de datos.
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:¿Cómo puedo evitar que me de el error...?

Publicado por Rodolfo Reyes (445 intervenciones) el 13/05/2004 22:25:13
Puedes intentar crear dos campos(los cuales sean del mismo tipo que el de Importe, pero no son de base de datos) en el bloque padre.

En los dos guardar el monto del campo de importe, en el Evento Post Query. Y el campo del importe no lo muestras en la forma, si no que solo uno de los otros dos campos.

La sumatoria la acumulas en uno de los dos campos temporales. Y al salirte de la forma o cambiar de registro en el padre, verificas si el monto que esta en los dos campos que no son de base de datos son iguales. Si no son iguales quiere decir que el monto se ha modificado y entonces actualizas el campo de base de datos con el nuevo monto.

De esta manera, no te tendría que dar problemas.


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