Power Builder - Actualizar Datos (URGENTE)

 
Vista:
sin imagen de perfil

Actualizar Datos (URGENTE)

Publicado por Edgar (87 intervenciones) el 23/02/2006 17:09:41
Amigos del foro necesito su ayuda , de ante mano muchas gracias y un saludo desde Ecuador.
Miren tengo una funcion que me recupera datos de un datawindow origen y me inserta en un datawindow destino, tambien verifica si existe informacion en el destino y me actualiza solo el campos que yo deseo.
PROBLEMA.- El problema radica en que cuando recupero la informacion del destino, recupera todas las actividades (campo "eac_valmin" que es donde yo grabo la informacion) digamos que recupera 7 actividades, pero si yo quiero modificar solo 2 de ellas y mando a grabar aparentemente graba pero reviso en la base de datos y la informacion sigue igual que cuando ingrese informacion al principio no actualiza los cambios que realice.

El script es el siguiente por favor me pueden ayudar

// Declaracion de variables
long ll_aux,ll_fila,ll_numfildestino,ll_contador
string ls_codper,ls_codpro,ls_codpla,ls_codact

// Creacion de Datastore
datastore lds_destino,lds_destino_actualiza

lds_destino = create datastore
lds_destino_actualiza = create datastore
lds_destino.dataobject ='d_pro_m_evaluacion_actividad'
lds_destino_actualiza.dataobject = 'd_pro_m_evaluacion_actividad'
lds_destino.settransobject(sqlca)
lds_destino_actualiza.settransobject (sqlca)

//Lectura del campo pev_codper de que se encuentra en el dw_mandat
ls_codper=adw_mandat.GetitemString(adw_mandat.getrow(),'pev_codper')

for ll_aux = 1 to adw_boton.rowcount()
ls_codact = adw_boton.GetitemString(ll_aux,'apr_codact')
ls_codpro = adw_boton.GetitemString(ll_aux,'pit_codpro')
ls_codpla = adw_boton.GetitemString(ll_aux,'pop_codpla')

// Busco si existe informacion
ll_numfildestino=lds_destino_actualiza.Retrieve(ls_codper)
if sqlca.sqlcode < 0 then
return "Error al Recuperar los Datos " + sqlca.sqlerrtext
end if

choose case ll_numfildestino
case 0
//No existe información, ingresar un nuevo registro
ll_fila = lds_destino.insertrow(0)
lds_destino.SetItem(ll_fila,'apr_codact',adw_boton.GetItemString(ll_aux,'apr_codact'))
lds_destino.SetItem(ll_fila,'pit_codpro',adw_boton.GetItemString(ll_aux,'pit_codpro'))
lds_destino.SetItem(ll_fila,'pop_codpla',adw_boton.GetItemString(ll_aux,'pop_codpla'))
lds_destino.SetItem(ll_fila,'eac_valmin',adw_boton.GetItemNumber(ll_aux,'eac_valmin'))
lds_destino.Setitem(ll_fila,'pev_codper',ls_codper)
lds_destino.Setitem(ll_fila,'codusu',gs_codusu)
lds_destino.Setitem(ll_fila,'fecult',today())
lds_destino.Setitem(ll_fila,'estado','VIG')
lds_destino.Setitem(ll_fila,'status','I')

case 1 to ll_numfildestino
for ll_contador = 1 to ll_numfildestino
//existe información en el registro y actualizo
lds_destino_actualiza.SetItem(ll_contador,'eac_valmin',adw_boton.GetItemNumberll_aux,'eac_valmin'))
lds_destino_actualiza.Setitem(ll_contador,'codusu',gs_codusu)
lds_destino_actualiza.Setitem(ll_contador,'fecult',today())
lds_destino_actualiza.Setitem(ll_contador,'status','M')
if lds_destino_actualiza.Update () <> 1 then
rollback using sqlca;
if sqlca.sqlcode < 0 then
return "Error al Actualizar los Datos" + sqlca.sqlerrtext
else
commit using sqlca;
end if
end if
next

end choose
next
If lds_destino.Update () <> 1 Then
Rollback using sqlca;
Return "Error al actualizar los datos "
else
commit using sqlca;
End if
return ""
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:Actualizar Datos (URGENTE)

Publicado por Asgard (1957 intervenciones) el 23/02/2006 20:44:08
Ya lo depuraste para seguir paso a paso el proceso?

Te manda algun mensaje?

Lo cierto es que esta entrando a realizar el rollback
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