Insertar fila con SQL
Soy la de lo arboles, que quiere actualizar dos tablas en un dw.
Probé lo que me recomendaste. Pero me sale este error:
Aplication Terminated
Error:Name not found accesing external object property id_campo
At line 17 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.id_campo[dw_1.GetRow()]//aqui esta el error//
ls_parcela=dw_1.Object.parcela[dw_1.Getrow()]
li_id_arbol=dw_1.Object.id_arbol[dw_1.Getrow()]
ls_anio=dw_1.Object.anio_medicion[dw_1.Getrow()]
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é lo que me recomendaste. Pero me sale este error:
Aplication Terminated
Error:Name not found accesing external object property id_campo
At line 17 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.id_campo[dw_1.GetRow()]//aqui esta el error//
ls_parcela=dw_1.Object.parcela[dw_1.Getrow()]
li_id_arbol=dw_1.Object.id_arbol[dw_1.Getrow()]
ls_anio=dw_1.Object.anio_medicion[dw_1.Getrow()]
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 achafio
1