Hola
     antes del OPNQRYF tienes que hacer un OVRDBF SHARE(*yES). Aprovecha aqui para hacer lo que quieres. Es decir, OVRDBF(AA) TOFILE(AA) MBR(MBR1) SHARE(*YES)
 
uN sALUDO


De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de Matilde Vedia Molina
Enviado el: lunes, 17 de julio de 2006 13:51
Para: Forum.help400
Asunto: OPNQRYF

Hola,
quiero hacer un OPNQRYF de un archivo lógico que tiene (un) miembro que contiene datos de (varios) miembros de un archivo físico.
 
 
 OPNQRYF    FILE((*LIBL/ARCHIVOLOGICO &MBR1)) OPTION(*ALL)
              QRYSLT(&LIS1) KEYFLD((CPO1) (CPO2)) 
 
 
(&MBR1 Contiene el nombre del miembro que voy a utilizar)
(&LIS1 Contiene la selección que quiero hacer)
 
 
y recibo en siguiente mensaje CPD3103
 
                                                                              
 Mensaje . . . . :   Los valores de parámetro especificados hacen necesario   
   OPTION(*INP).                                                              
 Causa . . . . . :   El archivo sólo debe abrirse para operaciones de entrada 
   si las especificaciones de consulta requieren una de las siguientes        
   condiciones:                                                               
     -- Proceso de unión donde se especificaron múltiples archivos en el      
   parámetro FILE.                                                            
     -- Proceso por clave exclusiva donde se especificó el parámetro UNIQUEKEY.
     -- La suma de los campos de clave puede sobrepasar los 2000 bytes.       
     -- Debe consultarse una vista de SQL que tiene proceso diferenciado.     
     -- Debe consultarse una vista de SQL que hace referencia a la misma tabla
   que la tabla de subselección más externa.                                  
    -- Una copia de los datos para realizar las funciones solicitadas.        
    También se requiere el valor *INP del parámetro OPTION si se requiere     
  proceso de grupo debido a la utilización del parámetro GRPFLD, el parámetro 
  GRPSLT o una función de totales (%MIN o %MAX con un sólo argumento, %AVG,   
  %COUNT, %SUM, %STDDEV, o %VAR).                                             
    Para obtener más información acerca de las vistas SQL, consulte el tema   
  DB2 UDB for AS/400 SQL Reference, en Information Center,                    
 
http://www.as400.ibm.com/infocenter, o el tema DB2 UDB for AS/400 SQL       
  Programming, en Information Center,
http://www.as400.ibm.com/infocenter.    
Recuperación  . :   Efectúe una de las siguientes acciones y vuelva a intentar
  la petición:                                                                
    -- Omita el parámetro OPTION.                                             
    -- Especifique el valor *INP para el parámetro OPTION. 
   -- Omita las especificaciones que limitan la apertura del archivo de
 consulta a proceso de entrada.
 
 
Esto me está obligando a cambiar el parámetro OPTION DE *ALL a *INP, pero si hago esto, en el programa RPG que utiliza este archivo al cual le he hecho el OPNQUYF, NO ME PERMITE ACTUALIZAR DATOS.
 
   Esto está funcionando con otros programas cuando utilizo un fichero lógico contiene datos de un solo miembro de fichero físico.
 
¿PUEDE ALGUIEN AYUDARME A RESOLVER ESTE PROBLEMA?                                                           
 
 
Muchas gracias a todos por vuestra ayuda

 
                              
Matilde Vedia Molina

Departamento Informática
Flexol España S.L.

Responder a