Nosotros trabajamos bastante con programas de servicio, y pasamos con frecuencia la información leída de fichero por una función a otra. Para cargar una DS recibida por parámetro con el resultado de un chain, teníamos una DS que solapaba los campos del fichero, y que se cargaba al hacer el chain, y luego la copiábamos a la DS recibida por parámetro. Empleando el chain sobre DS podemos cargar directamente la DS recibida por parámetro, sin 'DS intermediaria'.

En el uso de programas de servicio, el mayor quebradero de cabeza que nos ha surgido es el acceso a ficheros: Si cada programa de servicio abre todos los ficheros que necesita, se puede llegar a abrir muchas veces un mismo fichero, lo cual no es muy recomendable en términos de eficiencia, además de que aumenta la posibilidad de intento de acceso a un registro bloqueado por uno mismo. La opción que hemos adoptado es que solamente un programa de servicio acceda a un determinado fichero, y que el resto de programas de servicio que requieran acceder a dicho fichero lo hagan vía funciones que provee el único programa de servicio que accede directamente a él. De esta manera, cada fichero solo está abierto una vez, aunque haya N programas de servicio activos que trabajen con él. Además, para evitar abrir innecesariamente ficheros que tal vez no se lleguen a gastar, los declaramos con *usropn, y los abrimos manualmente solo cuando los vamos a utilizar.

En cuanto a lo que comentas de un mismo campo en dos DS, nosotros definimos las DS con la palabra clave qualified, con lo que impedimos la posibilidad de machacar el valor de un campo de una DS al modificar un campo del mismo nombre de otra. (no se si te referías a este problema).


Saludos.

Fernando Pérez 

Cerámica Saloni. Dpto. Auditoría y Organización



Guillermo Andrades (CPI Software) escribió:
que "ventajas" pretendes conseguir con eso de leer sobre una DS?

justamente un problema que estamos viendo sobre DS es cuando se pone un campo en dos DS, casi voy a poner esto tambien en otro topic porque creo que no es el mismo tema que tu pretendes.


Saludos,
Guillermo Andrades
http://cpiSoftware.es


2008/6/11 Fernando Pérez <[EMAIL PROTECTED]>:
Saludos, foreros.

He empezado a utilizar estructuras de datos para operaciones con ficheros, del tipo chain clave fichero estructura_de_datos.

Hasta aquí todo bien. defino la estructura de datos con extname(fichero: *input) y listos. El problema me surge cuando quiero actualizar. Para ello, la estructura de datos se tendría que definir con *output en lugar de con *input, pero si lo hago, ya no me vale para chain y read/e.

Teniendo en cuenta que tanto si uso *input como *output obtengo exáctamente la misma estructura de datos, podría definir dos, una para lectura y otra para actualización, y antes del update copiar la de lectura en la de actualización, pero me parece tan estúpido tener que funcionar así (sabiendo que las DS's son iguales) que tengo esperanzas de que esté haciendo algo mal y haya una forma más lógica de funcionar.

¿Hay alguna forma de definir la estructura de datos para que me sirva tanto para lectura como para actualización, o me tengo que resignar a utilizar dos estructuras de datos?

Gracias anticipadas
--
Saludos.

Fernando Pérez 

Cerámica Saloni. Dpto. Auditoría y Organización


__________________________________________________
Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
&amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400


__________________________________________________ Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400. &amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400
begin:vcard
fn;quoted-printable:Fernando P=C3=A9rez
n;quoted-printable:P=C3=A9rez;Fernando
org;quoted-printable:;Auditor=C3=ADa y Organizaci=C3=B3n
email;internet:[EMAIL PROTECTED]
tel;work:Ext. 627
x-mozilla-html:TRUE
version:2.1
end:vcard

__________________________________________________
Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
&amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

Responder a