Hola Carlos,
Nosotros hace 3 años que creamos todos los ficheros como tablas SQL con
integridad referencial.
Tuvimos algunos problemas con el Navigator, que me dicen ya resueltos en
V5R3, y decidimos no utilizarlo y en su lugar utilizar STRSQL y RUNSQLSTM
desde emulaciones 5250.
Que yo sepa, la instrucción CREATE TABLE crea un fichero físico con un solo
miembro y un formato de registro, los 3 con el mismo nombre.
La regla de nomenclatura es que el nombre del fichero será igual al de la
tabla SQL, pasado a mayúsculas, si el nombre de la tabla tiene 10
caracteres o menos.
Si el nombre de la tabla es de más de 10 caracteres el nombre del fichero,
miembro y registro serán los 5 primeros caracteres del nombre de la tabla
más una secuencia numérica entre 00001 y 99999 en caso de que los cinco
primeros caracteres coincidan con los de otro fichero.
La instrucción SQL RENAME TABLE te permite cambiar el nombre de la tabla, y
el nombre interno del sistema (nombre del fichero), pero no cambia el
nombre del miembro ni el del registro.
La instrucción CPF RNMM te permite cambiar el nombre del miembro.
No existe ninguna instrucción que te permita cambiar el nombre del
registro, al menos que yo sepa, para un fichero creado como tabla que
lógicamente no tiene DDS.
Nosotros, al crear la tabla, le damos el nombre que queremos como nombre
interno, con una longitud de 10 caracteres como máximo y siguiendo nuestras
reglas de nomenclatura.
Como el nombre del fichero coincide con el nombre del registro, en los
programas RPG con acceso tradicional es necesario renombrar el registro.
Al principio lo que hacíamos era crear la tabla con el nombre deseado de
registro y luego con RENAME TABLE cambiábamos el nombre de la tabla y el
nombre interno y con RNMM el del miembro, pero hemos abandonado esta
costumbre, ya que si recuperas el script de definición con el Navigator o
con las API que lo permiten, no se recuperan estas características y a la
larga tienes problemas.
Así que hemos optado por renombrar el registro en los programas que lo
precisan.
Nosotros almacenamos los script de definición, recuperados desde los
tablas, en miembros fuente, para poder utilizar RUNSQLSTM para
reproducirlos.
A la pregunta ¿para que sirve el nombre de miembro?, la respuesta es para
nada si sólo trabajas con SQL o principalmente con SQL.
Todas tus tablas tendrán un solo miembro, y mejor así.
Lo que sí te recomiendo es que el nombre del miembro coincida con el nombre
interno de la tabla, ya que aunque la mayoría de utilidades especifican
*FIRST para el nombre del miembro, algunas he visto que indican *FILE y que
te podrían fallar.
Si la pregunta es porqué una tabla debe tener un miembro, la respuesta es
que la forma de implementar SQL sobre el sistema de archivos de AS/400 (o
como se llame) es utilizar un objeto PF para almacenar la definición,
atributos, permisos, punteros, etc.
Un objeto PF puede tener un miembro, varios miembros o ningún miembro, pero
un PF no contiene datos o registros.
Los datos (o registros) se almacenan en miembros.
Bueno, perdona la extensión.
Espero haberme explicado y si lo deseas puedo ampliar algún concepto.
Saludos,
---------------------------
Santiago Martí
Dusen, S.A.
---------------------------
Carlos Augusto
Correa García
<[EMAIL PROTECTED] Para
om.pe> [email protected]
Enviado por: cc
forum.help400-adm
[EMAIL PROTECTED] Asunto
Re: Consulta DB2 y SQL
05/04/2006 15:12
Por favor,
responda a
[EMAIL PROTECTED]
bios.es
Amigos del foro
Si tuevieran alguna opinion u opinion se los agradeceré
Saludos ;-)
Carlos Augusto Correa García
Desarrollo de Sistemas
CMAC PIURA S.A.C.
Carlos Augusto Correa García escribió:
> Bueno días foro,
> El presente es para hacerles la siguiente consulta.
> Pretendo abocar mis trabajos así como los de todo el equipo de
> desarrollo de la empresa en la que trabajo, al uso de DB2 y SQL.
> Para tal efecto creo mis tablas a través de iSeries Navigator, sin
> embargo con SQL solo puedo manipular el nombre del objeto relacional
> (tabla) creado en DB2; pero yo necesito mantener el estandar de
> denominación de objetos (del sistema operativo) que uso en mis
> programas nativos RPG, CL y otros.
> Por ejemplo: Creo una tabla (create table...) llamada "Clientes".. sin
> embargo no me permite definirle el nombre interno del Sistema (el cual
> ya tengo estandarizado), por ejemplo "F2001", tengo que entrar a la
> opcion "Redenominar" para definirle el nombre interno del sistema
> operativo. Que es como los voy a llamar desde mis programas RPG.
> Además me crea un nombre de formato de registro en forma automática,
> para este ejemplo: "CLIEN00001", el que necesito muchas veces
> referenciar desde mis programas nativo y él cual no lo puedo cambiar.
> Todos estos cambios tengo que hacerlos en forma manual, esto implica
> que cuando yo haga un backup de mis scripts SQL no voy a guardar estas
> caracteristicas, y básicamente tendría que revisar todos mis RPG en
> caso que los quisiera volver a generar desde cero.
> Si tuvieran algunas buenas prácticas de estanderes de denominación y
> desarrollo sería muy interesante
> Otra pregunta, ¿Para que me sirve el nombre de miembro? ¿Cual es la
> diferencia con el nombre del formato de registro?
> Muchas gracias por sus respuestas
>
> Saludos
>
> ----------------------------------
> Carlos Augusto Correa García
> Desarrollo de Sistemas
> CMAC PIURA S.A.C.
>
> __________________________________________________
> 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
>
__________________________________________________
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
__________________________________________________
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