|
Resumen ejecutivo
Los archivos de datos DB2/400 aceptan poseer más de un miembro
de datos. Si el acceso a archivos multimiembro se hace desde herramientas
tradicionales (DDS,CL, RPG, etc.) existen formas francas de direccionar
un miembro determinado. En cambio, cuando se utilizan accesos tipo
SQL, por ejemplo en un entorno client/Server, o desde la Web, o
desde JAVA, deben implementarse otros recursos para elegir sobre
cuál miembro se desea trabajar.
A partir de OS/400 V4.3, el lenguaje SQL posee una sentencia CREATE
ALIAS para crear un nombre alternativo para un archivo físico
de datos asociado a un determinado miembro. El resultado de la ejecución
de esta instrucción SQL es la creación de un objeto
de tipo *FILE con atributo DDMF.
El comando CL Override Database File (OVRDBF) también permite
al administrador de base de datos procesar miembros individuales
de un archivo de base de datos, desde una línea de comandos,
desde un programa o con una llamada a QCMDEXC. Sin embargo, el método
del ALIAS es más adecuado para estos casos.
Introducción
Los archivos de datos DB2/400 (*FILE PF-DTA) almacenan registros
conteniéndolos dentro de un miembro
de datos. DB2/400 soporta los llamados
archivos multimiembro, es decir, este tipo de objeto acepta
poseer más de un miembro de datos para contener otro subconjunto
de registros del mismo formato (otra sucursal, otro año fiscal,
etc.).
Cuando se manipulan registros de un archivo, por omisión
el sistema accede a los registros del primer miembro (aquél
de fecha de creación más temprana). Si el acceso a
un archivo multimiembro se hace desde herramientas tradicionales
(mandatos CL, DDS RPG, etc.) existen formas francas de direccionar
un miembro determinado.
En cambio, cuando se utilizan accesos tipo SQL, por ejemplo desde
un sistema cliente, o desde la Web, o desde JAVA, deben implementarse
otros recursos para elegir sobre cuál miembro se desea trabajar.
Básicamente esto se logra a través de la creación
de ALIAS o el uso del OVRDBF.
SQL y la creación de Alias
A partir de OS/400 V4.3, el lenguaje SQL posee una sentencia CREATE
ALIAS para crear un nombre alternativo para un archivo
físico de datos y un determinado miembro. El resultado de
la ejecución de esta instrucción SQL es la creación
de un objeto de tipo *FILE
con atributo DDMF.
Es importante observar que el efecto de la
ejecución de este comando no es temporario, sino que genera
un objeto en una determinada biblioteca al que podrá referirse
como un archivo físico de datos independiente en cualquier
momento desde un cliente utilizando ODBC, por ejemplo desde MS-Access
o desde Excel.
Las siguientes sentencias son ejemplos de creación de Alias:
1)
CREATE ALIAS tekdb2.pruebas FOR tekdb2.movim
Dónde tekdb2.pruebas
es el nombre del alias (*FILE DDMF que se genera), y
tekdb2.movim es el archivo *FILE PF-DTA en el cual
se basa. Como no se especifican datos del miembro, apunta al de
fecha de creación más antigua.
2) CREATE
ALIAS tekdb2.vent_enero FOR tekdb2.ventas(enero)
Dónde tekdb2. vent_enero
es el nombre del alias (*FILE DDMF que se genera), y
tekdb2. ventas(enero)
es el archivo *FILE PF-DTA en el cual se basa, y
enero el nombre del miembro del archivo.
Para crear un alias, pueden utilizarse diferentes entornos:
a) Desde
pantalla verde, invocando
al comando STRSQL.
b)
Desde Operations Navigator, a través
del item Base de datos.
Independientemente de la interfaz usada para la creación
de alias, el objeto generado es siempre un *FILE DDMF en la biblioteca
indicada.
En las siguientes secciones se ejemplificará el uso del
mandato SNDUSRMSG.
Creación de un alias usando
STRSQL
Para crear un alias desde "pantalla verde" realizar los
siguientes pasos:
1) Iniciar una sesión interactiva,
e ingresar el comando STRSQL.
2) Presionar F4
para obtener la lista de comandos SQL permitidos.
3) Seleccionar la opción
6, CREATE ALIAS,
y presionar Intro.
4) Indicar el nombre del alias y la biblioteca
donde se lo almacenará. También especificar el nombre
calificado del archivo, y sobre cual miembro operará. Luego
presionar Intro.
Cuando se crea un alias de la manera detallada anteriormente, la
autorización *PUBLIC para el objeto *FILE DDMF surge del
parámetro CRTAUT de la biblioteca que lo contendrá.
Creación de un alias usando
Operations Navigator
Para crear un alias desde Operations Navigator realizar los siguientes
pasos:
1) Iniciar una sesión
con Operations Navigator .
2) Sobre el item Base
de datos, presionar botón derecho.
3) Elegir Ejecutar
scripts SQL.
4) Ingresar la sentencia SQL que permite
crear un alias. Como ayuda se puede utilizar el combo box "Ejemplo
sentencias SQL", seleccionar la sentencia e insertar. La siguiente
ventana muestra la sentencia CREATE ALIAS y un posterior uso con
la sentencia SELECT.

Cuando se crea un alias de la manera detallada anteriormente, la
autorización *PUBLIC para el objeto *FILE DDMF es *EXCLUDE.
Luego de la creación, se puede hacer referencia al alias
como al nombre de cualquier archivo físico.
Seleccionando el miembro a utilizar
con OVRDBF
El comando CL Override Database File (OVRDBF) también permite
al administrador de base de datos procesar miembros individuales
de un archivo de base de datos. Sin embargo, crear un alias sobre
un miembro de un archivo físico es más fácil
y trabaja mejor al eliminar la necesidad de realizar un override.
Además, las alteraciones temporales deben invocarse cada
vez que se las desee utilizar.
La manera de acceder a un miembro determinado de un archivo físico
usando la alternativa OVRDBF puede ser desde una línea de
comandos, desde un programa o con una llamada a QCMDEXC como la
siguiente, (ya sea desde la línea de comandos SQL, o como
sentencia dentro de un script SQL con la interfaz Operations Navigator),
para ser invocada desde un cliente:
CALL QSYS/QCMDEXC('OVRDBF
FILE(MOVIM) MBR(MOVIM1) OVRSCOPE(*JOB)', 0000000045,00000)
, donde el segundo parámetro (el número)
es la longitud del primer parámetro en formato 15,5 (todos
los 0's tienen que estar).
Para tener en cuenta...
- A un archivo físico de datos multimiembro no se le pueden
definir restricciones referenciales.
- Si un archivo físico tiene definidas restricciones referenciales,
no va a poder tener más de un miembro de datos.
- Los archivos físicos aceptan por default, como máximo,
un solo miembro de datos. Para agregar un nuevo miembro, debe
modificarse con el comando CHGPF el atributo Máximo de
miembros de "1" a un valor determinado o "*NOMAX"
y luego crear el miembro con ADDPFM.
- En la pantalla "Trabajar con miembros utilizando PDM",
cuando se visualizan los miembros de un archivo físico
de datos, la fecha que acompaña al nombre del miembro representa
la correspondiente al último cambio. Para ver la fecha
de creación, utilizar la opción 8 (Visualizar descripción).
- El usuario que emite la sentencia CREATE ALIAS debe tener autorización
*USE para el comando CRTDDMF (que se ejecuta indirectamente al
crear un alias) aunque el usuario no tenga que ejecutar directamente
este comando.
- Si bien al crear el alias se genera un objeto *FILE DDMF, si
se expande la biblioteca que lo contiene desde el Operations Navigator,
en el item Base de Datos, se lo distinguirá como tipo Alias.
|