Actualizar con sql
Soy la de lo arboles, que quiere actualizar dos tablas en un dw.
Probé actualizar la segunda tabla con Sql, pero me sale este error:
Aplication Terminated
Error:Name not found accesing external object property id_campo
at line 20 in clicked cb_2 of w_arbolmed.
O sea hay un problema cuando trato de asignarle a una variable
el valor de la columna pero como no se donde esta mal te mando el código
Esta un poquito largo, pero supongo que esta bien localizado el problema.
boolean lb_commit
string ls_error
integer rc, row
string err
integer li_id_campo, li_id_arbol,li_id_empleado,li_id_rectitud, li_id_ramificacion
integer li_id_calidad, li_id_sanidad
string ls_parcela, ls_observaciones,ls_anio
DECIMAL{2} ld_dap,ld_alt_fuste, ld_alt_tot
//actualizo arbol
rc = dw_1.update()
if rc=-1 then
rollback;
messagebox("Estado", "Grabación incorrecta. No se grabó arbol")
else//si todo esta bien entonces actualizo mediciones
li_id_campo=dw_1.Object.arbol_id_campo[dw_1.GetRow()] ls_parcela=dw_1.Object.arbol_parcela[dw_1.Getrow()]
li_id_arbol=dw_1.Object.arbol_id_arbol[dw_1.Getrow()]
//a partir de aui va la segunda tabla
ls_anio=dw_1.Object.anio_medicion[dw_1.Getrow()] //aqui esta el error//
/*El error podría pensarse que es porque debería escribir mediciones_anio_medicion, pues mediciones es la tabla, pero ya probé eso y el error persiste, Me sabrías decir que me esta faltando?*/
li_id_empleado=dw_1.Object.id_empleado[dw_1.Getrow()]
ld_dap=dw_1.Object.dap[dw_1.Getrow()]
ld_alt_fuste=dw_1.Object.alt_fuste[dw_1.Getrow()]
ld_alt_tot=dw_1.Object.alt_tot[dw_1.Getrow()]
li_id_rectitud=dw_1.Object.id_rectitud[dw_1.Getrow()]
li_id_ramificacion=dw_1.Object.id_ramficacion[dw_1.Getrow()]
li_id_calidad=dw_1.Object.id_calidad[dw_1.Getrow()]
li_id_sanidad=dw_1.Object.id_sanidad[dw_1.Getrow()]
// inserta fila
insert into mediciones(id_campo, parcela, id_arbol, anio, id_empleado,&
dap, alt_fuste, alt_tot, id_rectitud, id_ramificacion, id_calidad, &
id_sanidad, observaciones)
values(:li_id_campo, :ls_parcela, :li_id_arbol, :ls_anio, :li_id_empleado, &
:ld_dap, :ld_alt_fuste,:ld_alt_tot, :li_id_rectitud, :li_id_ramificacion, :li_id_calidad, &
:li_id_sanidad, :ls_observaciones)
using sqlca;
lb_commit = ((sqlca.sqlcode = 0) and (sqlca.sqlcode=0))
If lb_commit then
commit using sqlca;
messagebox("Estado", "Grabacion correcta")
else
ls_error=sqlca.sqlerrtext
rollback using sqlca;
messagebox("error", ls_error)
end if
end if
Probé actualizar la segunda tabla con Sql, pero me sale este error:
Aplication Terminated
Error:Name not found accesing external object property id_campo
at line 20 in clicked cb_2 of w_arbolmed.
O sea hay un problema cuando trato de asignarle a una variable
el valor de la columna pero como no se donde esta mal te mando el código
Esta un poquito largo, pero supongo que esta bien localizado el problema.
boolean lb_commit
string ls_error
integer rc, row
string err
integer li_id_campo, li_id_arbol,li_id_empleado,li_id_rectitud, li_id_ramificacion
integer li_id_calidad, li_id_sanidad
string ls_parcela, ls_observaciones,ls_anio
DECIMAL{2} ld_dap,ld_alt_fuste, ld_alt_tot
//actualizo arbol
rc = dw_1.update()
if rc=-1 then
rollback;
messagebox("Estado", "Grabación incorrecta. No se grabó arbol")
else//si todo esta bien entonces actualizo mediciones
li_id_campo=dw_1.Object.arbol_id_campo[dw_1.GetRow()] ls_parcela=dw_1.Object.arbol_parcela[dw_1.Getrow()]
li_id_arbol=dw_1.Object.arbol_id_arbol[dw_1.Getrow()]
//a partir de aui va la segunda tabla
ls_anio=dw_1.Object.anio_medicion[dw_1.Getrow()] //aqui esta el error//
/*El error podría pensarse que es porque debería escribir mediciones_anio_medicion, pues mediciones es la tabla, pero ya probé eso y el error persiste, Me sabrías decir que me esta faltando?*/
li_id_empleado=dw_1.Object.id_empleado[dw_1.Getrow()]
ld_dap=dw_1.Object.dap[dw_1.Getrow()]
ld_alt_fuste=dw_1.Object.alt_fuste[dw_1.Getrow()]
ld_alt_tot=dw_1.Object.alt_tot[dw_1.Getrow()]
li_id_rectitud=dw_1.Object.id_rectitud[dw_1.Getrow()]
li_id_ramificacion=dw_1.Object.id_ramficacion[dw_1.Getrow()]
li_id_calidad=dw_1.Object.id_calidad[dw_1.Getrow()]
li_id_sanidad=dw_1.Object.id_sanidad[dw_1.Getrow()]
// inserta fila
insert into mediciones(id_campo, parcela, id_arbol, anio, id_empleado,&
dap, alt_fuste, alt_tot, id_rectitud, id_ramificacion, id_calidad, &
id_sanidad, observaciones)
values(:li_id_campo, :ls_parcela, :li_id_arbol, :ls_anio, :li_id_empleado, &
:ld_dap, :ld_alt_fuste,:ld_alt_tot, :li_id_rectitud, :li_id_ramificacion, :li_id_calidad, &
:li_id_sanidad, :ls_observaciones)
using sqlca;
lb_commit = ((sqlca.sqlcode = 0) and (sqlca.sqlcode=0))
If lb_commit then
commit using sqlca;
messagebox("Estado", "Grabacion correcta")
else
ls_error=sqlca.sqlerrtext
rollback using sqlca;
messagebox("error", ls_error)
end if
end if
1 respuesta
Respuesta de Antonio Garcia
1