problemas con acceso a registros con el fetch

Consultas, trucos, consejos. Todo sobre Clarion en todas sus versiones
Responder
jorgeclimis
Ayudante de Santa
Mensajes: 93
Registrado: Lun Oct 15, 2012 5:22 pm
Contactar:

problemas con acceso a registros con el fetch

Mensaje por jorgeclimis » Vie Jun 21, 2019 2:13 pm

Buen dia gente,
Tengo un incoveniente al queres acceder a un registro de una tabla con el fetch y una clave compuesta.

tengo la siguiente tabla : acumula_retenciones
proveedor_id long " id del proveedor donde se acumula para imputarle retenciones"
periodo string(6) " es del tipo mm/aaaa"
retencion_id long " Tipo de retencion al que corresponde la acumulacion"
acumulado decimal (9,2) monto acumulado
importe retenido decimal (9,2) importe retenido

tengo la clave primaria con proveedor_id,periodo,retencion_id

mi codigo es el siguiente

ACU:Proveedor_id=Ret:PROVEEDOR_ID
ACU:Periodo=L:periodo
ACU:Retencion_id=Ret:Retencion_id

IF Access:Acumula_retencion.Fetch(ACU:acumulado_ret_x_proveedor_periodo) = Level:Benign
ACU:Acumulado=ACU:Acumulado - base_imponible
ACU:importe_retenido = ACU:importe_retenido - importe_retenido


IF Access:acumula_retencion.TryUpdate() <> Level:Benign
message('Error en transaccion: no se puede actualizar acumula_Retenciones: '&fileerror())
rollback
return level:fatal
END
ELSE
MESSAGE('no se encontro el acumula retencion.'&ERRORCODE())
rollback
return level:fatal
END

No encuentra el registro
Espero que me ayuden
Saludos
"En los momentos de crisis, sólo la imaginación es más importante que el conocimiento."
Albert Einstein

Jorge Climis


HDMadeira
Al nivel de RZ
Mensajes: 295
Registrado: Dom Feb 06, 2011 10:02 pm
Ubicación: Trelew, Chubut, Argentina
Contactar:

Re: problemas con acceso a registros con el fetch

Mensaje por HDMadeira » Vie Jun 21, 2019 4:39 pm

Hola, empecemos por la mas tonta.... esta la tabla en el other files del procedure ?

HDMadeira
Al nivel de RZ
Mensajes: 295
Registrado: Dom Feb 06, 2011 10:02 pm
Ubicación: Trelew, Chubut, Argentina
Contactar:

Re: problemas con acceso a registros con el fetch

Mensaje por HDMadeira » Vie Jun 21, 2019 4:42 pm

otra.. no se si es un error de tipeo pero

tengo la siguiente tabla : acumula_retenciones

y luego

IF Access:Acumula_retencion.Fetch……

no coinciden los nombres

jorgeclimis
Ayudante de Santa
Mensajes: 93
Registrado: Lun Oct 15, 2012 5:22 pm
Contactar:

Re: problemas con acceso a registros con el fetch

Mensaje por jorgeclimis » Vie Jun 21, 2019 5:21 pm

Es error de tipeo la tabla es acumula_retencion
La tabla esta efectivamente en other tables
"En los momentos de crisis, sólo la imaginación es más importante que el conocimiento."
Albert Einstein

Jorge Climis

HDMadeira
Al nivel de RZ
Mensajes: 295
Registrado: Dom Feb 06, 2011 10:02 pm
Ubicación: Trelew, Chubut, Argentina
Contactar:

Re: problemas con acceso a registros con el fetch

Mensaje por HDMadeira » Vie Jun 21, 2019 8:26 pm

ok.. ponele al principio esto como para ver que registros devuelve la key

clear(acu:record)
ACU:Proveedor_id=Ret:PROVEEDOR_ID
ACU:Periodo=L:periodo
ACU:Retencion_id=Ret:Retencion_id
set(ACU:acumulado_ret_x_proveedor_periodo,ACU:acumulado_ret_x_proveedor_periodo)
cuenta=1
loop while eof(Acumula_retencion)=false and cuenta<>5
next(Acumula_retencion)
stop(cuenta & ' ' & ACU:Proveedor_id & ' '& acu:periodo &' '& ACU:Retencion_id)
cuenta=cuenta+1
.

jorgeclimis
Ayudante de Santa
Mensajes: 93
Registrado: Lun Oct 15, 2012 5:22 pm
Contactar:

Re: problemas con acceso a registros con el fetch

Mensaje por jorgeclimis » Mar Jun 25, 2019 12:50 pm

Buenas...despues de tanto probar me funcionó este codigo

ACU:Proveedor_id=Ret:PROVEEDOR_ID
ACU:Periodo=L:periodo
ACU:Retencion_id=Ret:Retencion_id
SET(ACU:acumulado_ret_x_proveedor_periodo,ACU:acumulado_ret_x_proveedor_periodo)
NEXT(acumula_retencion)
IF NOT ERROR()
ACU:Acumulado=ACU:Acumulado - base_imponible
ACU:importe_retenido = ACU:importe_retenido - importe_retenido
IF Access:acumula_retencion.TryUpdate() <> Level:Benign
message('Error en transaccion: no se puede actualizar acumula_Retenciones: '&fileerror())
rollback
return level:fatal
END
ELSE
MESSAGE('no se encontro el acumula retencion.'&ERRORCODE())
rollback
return level:fatal
END

Muchas gracias
"En los momentos de crisis, sólo la imaginación es más importante que el conocimiento."
Albert Einstein

Jorge Climis


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado