Si, ya he hecho el debug. Todo lo hace perfecto excepto eliminar el 
registro del fichero viejo. Pasa por la sentencia y no da ningun error. He 
hecho una prueba poniendolo como input primary y sólo ejecuta una vez(el 
primer registro) y acaba. Es como si al poner la DS con el formato del 
fichero viejo, se hiciera un lio, y lo que estuviera eliminando es el 
registro de la DS, porque he hecho otra prueba, en vez de DELETE hago una 
actualizacion del fichero viejo, y me duplica los registros en el viejo.




Carlos Pedrozo <[email protected]> 
Enviado por: [email protected]
20/05/2010 16:03
Por favor, responda a
"forum.help400" <[email protected]>


Para
<[email protected]>
cc

Asunto
RE: mover registro entre 2 ficheros






 
podrias fijarte el tema de prefijo que utilizas y el Chain en tu clave.
 
Saludos

 
To: [email protected]
Subject: mover registro entre 2 ficheros
Date: Thu, 20 May 2010 11:01:12 +0200
From: [email protected]

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                                                 
Hotmail: Trusted email with powerful SPAM protection. Sign up now.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a