El 20/05/10 11:01, [email protected] 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.