El 20/05/10 11:01, albe...@arcadie.es escribió: > Hola Foro. Tengo un problema en lo que técnicalente sería 'mover' un > registro entero entre dos ficheros. Me explico: > tengo el fichero A con su registro y quiero copiarlo en el fichero B > que es exactamente igual, excepto el ultimo campo, y luego eliminarlo > del A. > He definido el programa de la siguiente forma que veis abajo, pero el > caso es que lo copia bien, pero no me borra el registro del primer > fichero, y no me da errores. Cómo lo puedo hacer? > Gracias > Farqtdatmp UF e K disk Rename(Rarqtdatmp:Rviejo) > Farqtda UF A e K disk > D RegistreTMP e DS Extname(arqtdaTMP) > D Registre e DS Extname(arqtda) Inz > D Prefix(NW) > * > /Free > Setll *start Arqtdatmp; > Dow not %Eof(Arqtdatmp); > Read Arqtdatmp; > If %Eof(arqtdatmp); > Leave; > Endif; > Exsr Srproces; > Enddo; > *inlr=*on; > > Begsr Srproces; > Chain (aqemp:aqten:aqanys:aqset:aqmes:aqdia) Arqtda; > If Aqevento='2';//Elimino > If %Found; > Delete Rarqtda; > Endif; > Else;//Afegeixo o actualitzo > Registre=Registretmp; > If Not %found; > Write Rarqtda; > Else; > Update Rarqtda; > Endif; > Endif; > Delete Rviejo; > Endsr; > /end-free > > > ____________________________________________________ > Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) > Forum.Help400 © Publicaciones Help400, S.L. Yo no estoy en una versión tan moderna como la tuya ya que el *start no puedo usarlo Yo haría algo así
Setll *loval Rviejo; Read Rviejo; Dow not %eof; Exsr Srproces; Delete Rviejo; Read Rviejo; Enddo; El resto igual excepto que el Delete Rviejo lo he sacado fuera de Srproces Un saludo. ____________________________________________________ Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 © Publicaciones Help400, S.L.