Ops, perdona, no lei bien tu correo donde indicabas de que el programa ha de abstraerse a la base de datos.... osea que la opción de un RPG puro y duro no te funcionaria.
Quizas te parezca que lo que te comento es de majaras, pero mirate bién el tema de prototipar las funciones de C para la lectura y escritura de registros en un RPG para poder gestionar cualquier archivo que te llege en origen i destino. Yo tube que hacerlo para poder leer registros con campos NULL. No encontré ninguna manera más fàcil de hacerlo, y me fascinó la potencia de esas funciones. Pero de todas maneras, para tu objetivo, no creo que te haigas de complicar tanto la vida. Si te cruje un CPYF de un bloque, controla el casque con un MONMSG y que el proceso se haga más tarde. De todas maneras.... como controlas si uno de los procesos ha fallado, y el receptor se queda sin un bloque? Insisto en el tema de la atomización (otra manera de llamar al control de compromiso, osea un COMMIT y ROLLBACK a nivel archivo) ... en otras plataformas diferentes del iSeries, yo he dejado de hacer servir el control de versiones CVS precisamente por eso, pq no me garantiza que todo se ha actualizado. Ahora utilizo Subversion, que si que me ofrece garantias de atomización. Por cierto, ya existe una versión de Subversion para iSeries... aun no la he probado, pero si nunca se da el caso, ya hos explicaré. fins aviat... Àlex Corretgé On 8/27/05, Jaime Villa Torres <[EMAIL PROTECTED]> wrote: > Estamos de acuerdo Àlex, cuando un cpyf se trabaja con *ADD no debería > bloquear el archivo, pero esto esta sucediendo. Debería bloquear el archivo > destino, cuando se hace con *REPLACE o cuando se crea el archivo desde el > cpyf. > El proceso es muy sencillo y simplemente pasar un archivoA a un archivoB con > el mismo formato, no requiere *NOCHK , *MAP ni *DROP, simplemente un *ADD > > Gracias por tu tiempo Àlex > > Jaime Villa T. > ----- Mensaje original ----- > De: "Àlex Corretgé" <[EMAIL PROTECTED]> > Para: <[email protected]> > Enviado: Viernes, 26 de Agosto de 2005 10:42 p.m. > Asunto: Re: Cpyf > > > Hola, > > Has probado un RPG sencillo con ciclo lógico? ;-) > > Cuando haces un CPYF, el mandato reclama exclusividad para el miembro > donde se ha de copiar si lo haces con *REPLACE.... con *ADD, creo que > no te ocurriria este problema. Pero claro, si lo que has de hacer no > es un recolector, si de antemano tu controlas la calidad de los datos, > puedes declarar los archivos con clave *UNIQUE, y hacer el CPYF con > *UPDADD, que no bloquea el miembro. Esta opción añade los registros > huerfanos de clave en el destino, y actualiza los campos que existan > fuera de la clave.... está guais, pero la mala noticia es que has de > controlar la calidad de los datos de origen. > > Para la cuestión original, desaconsejaria ejecutar una copia de datos > en trabajos diferentes. El principio de atomización lo pierdes, y si > cruje uno cualquiera de los trabajos, tus datos en el contenedor final > seran corruptos. Mirate el tema de las colas de datos, quizas te > sirva... al menos ahorraràs tiempo de proceso en la apertura y cierre > de archivos intermedios. > > fins aviat... > Àlex Corretgé > > > > On 8/27/05, Jaime Villa Torres <[EMAIL PROTECTED]> wrote: > > Gracias Jesús, ya realice esa prueba, pero los tiempos de respuesta con el > > insert, son n veces mayor que realizar el cpyf en un solo trabajo. > > Gracias por tu tiempo. > > > > Jaime Villa T. > > ----- Mensaje original ----- > > De: "Jesus Olague" <[EMAIL PROTECTED]> > > Para: <[email protected]> > > Enviado: Viernes, 26 de Agosto de 2005 06:05 p.m. > > Asunto: Re: Cpyf > > > > > > A grosso modo: > > > > 1. Obtienes de un archivo los nombres de los archivos a y b > > 2. Concatenas en una variable la sentencia SQL para que quede mas o menos > > STRING = 'INSERT INTO b SELECT a WHERE blablabla' > > 3. Preparas la sentencia > > C/EXEC SQL > > C+ PREPARE SENT FROM :STRING > > C/END-EXEC > > 4. Ejecutas la sentencia > > C/EXEC SQL > > C+ EXECUTE SENT > > C/END-EXEC > > > > Y ya está. > > > > Saludos. > > > > -- > > Jesús Olague > > Zacatecas, México > > > > __________________________________________________ > > Forum.HELP400 es un servicio más de NEWS/400. > > (c) Publicaciones Help400, S.L. - Todos los derechos reservados > > http://www.help400.es > > _____________________________________________________ > > > > Para darte de baja visita la siguente URL: > > http://coyote.combios.es/mailman/listinfo/forum.help400 > > > > > > __________________________________________________ > > Forum.HELP400 es un servicio más de NEWS/400. > > (c) Publicaciones Help400, S.L. - Todos los derechos reservados > > http://www.help400.es > > _____________________________________________________ > > > > Para darte de baja visita la siguente URL: > > http://coyote.combios.es/mailman/listinfo/forum.help400 > > > > > -- > > Fins aviat... > Àlex Corretgé > > __________________________________________________ > Forum.HELP400 es un servicio más de NEWS/400. > (c) Publicaciones Help400, S.L. - Todos los derechos reservados > http://www.help400.es > _____________________________________________________ > > Para darte de baja visita la siguente URL: > http://coyote.combios.es/mailman/listinfo/forum.help400 > > > __________________________________________________ > Forum.HELP400 es un servicio más de NEWS/400. > (c) Publicaciones Help400, S.L. - Todos los derechos reservados > http://www.help400.es > _____________________________________________________ > > Para darte de baja visita la siguente URL: > http://coyote.combios.es/mailman/listinfo/forum.help400 > -- Fins aviat... Àlex Corretgé __________________________________________________ Forum.HELP400 es un servicio más de NEWS/400. © Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://coyote.combios.es/mailman/listinfo/forum.help400
