AS/400 - Acceder a multiples tablas...

   
Vista:

Acceder a multiples tablas...

Publicado por Martin (3 intervenciones) el 04/12/2007 17:22:27
hola, estoy intentando hacer un listado leyendo los datos de una base. No tube problemas al hacer los 2 primeros listado ya que todos los datos que necesitaba se encontraban en una misma tabla. Ahora necesito estrar datos desde 3 tables diferentes usando un campo en comun para acceder a las 3 que es el numero de documento. Estoy usando un cl para hacer la conexion a la tabla y seleccionar los campos y un rpg para leer los datos y mostrarlos en un archivo en spool. Pense que agregando, en el cl, tantos ovrdbf como tablas necesitaba acceder podria solucionarlo pero no es asi. Alguno que lo haya echo me podria orientar como debo acceder a las tablas?
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Acceder a multiples tablas...

Publicado por Daniel Suárez (52 intervenciones) el 04/12/2007 18:30:33
Martin/

Tendrias que definir los 3 archivos en tu RPG

Luego con 3 simples CHAIN recuperas todos los valores de las 3 tablas , moves a los campos del PRTF, haces un WRITE y listo.

slds
Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder a multiples tablas...

Publicado por Martin (3 intervenciones) el 04/12/2007 18:53:46
Este es el codigo del cl. Pensaba que usando este programa no hacia falta hacer chain en el rpg. Si hago chain en el RPG ya no me haria falta este cl o tendria que colocar en el cl el nombre de la biblioteca en vez de la tabla?

Columnas . . : 1 71 Edición CURSO/SIDEBA
SEU==> MARTINC
FMT ** ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
*************** Principio de datos ************************************
0001.00 PGM
0002.00
0003.00 OVRDBF FILE(tabla1) SHARE(*YES)
0004.00 OPNQRYF FILE((tabla1)) KEYFLD((campo1) (campo2) +
0005.00 (campo3) (campo4) (campo5))
0006.00 CALL MARTINR
0007.00 DLTOVR FILE(*ALL)
0008.00 CLOF OPNID(tabla1)
0009.00 DSPSPLF FILE(QSYSPRT) SPLNBR(*LAST)
0010.00 ENDPGM
****************** Fin de datos ***************************************
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder a multiples tablas...

Publicado por Daniel Suárez (52 intervenciones) el 04/12/2007 19:18:55
Martin/

Todo ok en el CLP, pero fijate que el OPNQRYF hace referencia a una sola tabla.

Con el RPG y los 3 chain, tu solución es mucho mas agil y no tenes que hacer nada en el CLP.

Te hice este fuente a modo de prueba my sencillo.

*************** Beginning of data ********************************
FFILE1 IF E K DISK
FFILE2 IF E K DISK
FFILE3 IF E K DISK
*
C NDOC CHAINFILE1 50
C *IN50 IFEQ *OFF
C MOVELFLD1 PRT1
C END
C NDOC CHAINFILE2 50
C *IN50 IFEQ *OFF
C MOVELFLD2 PRT2
C END
C NDOC CHAINFILE3 50
C *IN50 IFEQ *OFF
C MOVELFLD3 PRT3
C END
* los campos PRT* son los de impreasión
C WRITERDETALL

Espero te sirva
Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder a multiples tablas...

Publicado por Martin (3 intervenciones) el 04/12/2007 19:35:42
Muchas gracias Daniel, anda excelente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder a multiples tablas...

Publicado por Daniel Suárez (52 intervenciones) el 06/12/2007 15:12:48
Martin/

Ok, me alegro y suerte.

Slds
Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder a multiples tablas...

Publicado por junior (1 intervención) el 16/05/2008 19:54:35
que es un acceso de multiples tablas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar