Update

Hola como estas, mi problema es el siguiente, estoy realizando un sistema en PowerBuilder 8 y utilizo PFC's en el momento que en la aplicación hago un grabado a la Base de Datos Oracle me sale como grabado exitoso pero si veo la base de datos no esta actualizada, se actualiza cuando cierro la aplicación, y esto me da problemas cuando se ejecutan procesos y presenta errores ya que hace un rollback de todo hasta de los procesos que se ejecutaron anteriormente, no se si me puedes ayudar con algún truco en PFC's o algún código para que se actualice en tiempo real la Base de datos te agradecería si me puedes ayudar
Gracias
Respuesta
1
Como tienes la transacción, si la tienes con autocommit=true (cuando hagas update se actualizará automáticamente en la BD) o autocomit=false (tienes que llevar tu a mano la transacción).
Si llevas autocommit=false, cuando cuando te conectas con una transacción la tienes que registras:
gnv_app.inv_trregistration.of_Register(transacción).
La sqlca ya esta registrada.
Y luego tienes que codificar lo siguiente en los siguientes eventos de la ventana w_master:
pfc_begintran:
n_tr ltr_trans[]
Integer li_trans, li_count
Long ll_return
li_trans = &
gnv_app.inv_trregistration.of_GetRegistered &
(ltr_trans)
IF li_trans = 0 THEN Return 0
For li_count = 1 to li_trans
ll_return = ltr_trans[li_count].of_Commit()
IF ll_return < 0 THEN Return -1
Next
Return 1
pfc_endtran:
n_tr ltr_trans[]
Integer li_trans, li_count
Long ll_return
li_trans = gnv_app.inv_trregistration.of_GetRegistered(ltr_trans)
IF li_trans = 0 THEN Return 0
if ai_update_results=-1 then
For li_count = 1 to li_trans
ll_return = ltr_trans[li_count].of_Rollback()
IF ll_return < 0 THEN Return -1
Next
else
For li_count = 1 to li_trans
ll_return = ltr_trans[li_count].of_Commit()
IF ll_return < 0 THEN Return -1
Next
end if
return 1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas