Title: Indices?

OK.

Es decir el que toma o selecciona los �ndices ser�a el programa CL, no el RPG?

Es as�?

 

-----Mensaje original-----
De: Colado Rodriguez Ignacio [mailto:[EMAIL PROTECTED]
Enviado el: Lunes, 24 de Marzo de 2003 03:36 a.m.
Para: '[EMAIL PROTECTED]'
Asunto: RE: �ndices?

 

Me imagino que te refieres a utilizar �ndices creados para que los administre el gestor de base de datos de DB/2, no a la forma "tradicional" de leerlos es un programa directamente.

Nosotros utilizamos COBOL, pero imagino que ser� igual que con RPG. Estos lenguajes necesitan una "v�a de acceso" abierta para suministrar los registros al programa (estoy suponiendo que no es SQL embebido, eso es otro tema).

 

Un ejemplo:

 

Tenemos una TABLA1 no ordenada de 5.000 registros, es decir, sin claves y queremos leer todos los registros que el CAMPO1='BARCELONA'. Si no tenemos un �ndice (=l�gico) por ese campo el programa deber� leer los 5.000 registros secuencialmente para obtener los 15 (por ejemplo) que cumplen esta condici�n.

 

Supongamos que creamos un �ndice ordenado por ese campo.

 

En la manera tradicional, una vez creado el �ndice, se declara en el programa y se trabaja con �l normalmente. Te posicionas (creo recordar que en RPG era CHAIN) y lees hasta que cambie el valor del campo.

 

Si, por otro lado, lo que queremos es dejar al gestor de base de datos de DB/2 se busque la manera de entregar al programa �nicamente los registros que nos interesan, una vez creado el �ndice, lo que declaramos en el RPG es la tabla (=f�sico) y tratamos los TODOS los registros secuencialmente. Pero PREVIAMENTE debemos haber creado una "v�a de acceso" mediante "algo" que se ha encargado de filtrar la tabla dejando pasar solamente los registros que interesan. Ese "algo" suele ser en programaci�n tradicional del 400 (CL + RPG o COBOL) un OPNQRYF. El proceso en cuesti�n ser�a algo parecido a esto:

 

OVRDBF TABLA1 SHARE(*YES) /* esto permite compartir la v�a de datos con el RPG */

OPNQRYF TABLA1 QRYSLT(CAMPO1='BARCELONA') /* esto prepara los datos para el programa */

CALL PGM1 /* este es tu programa RPG */

 

Con esto, a tu programa, le entran solo los registros que quieres tratar y simplifica la l�gica del mismo.

 

Claro, el OPNQRYF realiza la selecci�n r�pidamente mediante una llamada al gestor de base de datos que le advierte que existe un �ndice id�neo para realizar la selecci�n y lo utilaza para acelerar la b�squeda y selecci�n. Suponiendo que existieran m�ltiples �ndices creados con diferentes ordenaciones y/o selecciones el gestor seleccionar�a el m�s indicado para satisfacer tus necesidades.

 

Como puedes ver esto es una gran utilidad ya que imagino que te das cuenta de la multitud de ventajas que proporciona en flexibilidad, administraci�n y simplificaci�n de l�gica de programaci�n.

 

Saludos, Ignacio Colado.

Swiss Life (Espa�a), S.A.

 

-----Mensaje original-----
De: Dulanto, Cesar (Cifarma) [mailto:[EMAIL PROTECTED]
Enviado el: viernes, 21 de marzo de 2003 23:18
Para: Help400 (E-mail)
Asunto: Indices?

 

Disculpen la pregunta, pero me siento un poco confundido.

Cuando trabajo en RPG y utilizo los l�gicos, supuestamente me acelera el trabajo.

Cual es la ventaja de crear �ndices y como se utilizan???

Gracias.

          ------------------------------------
Este correo electr�nico y los documentos que lo acompa�an, pueden 
contener informaci�n reservada y/o confidencial dirigida exclusivamente
al destinatario. Si Vd. no es el destinatario, no est� autorizado a copiar
o distribuir esta comunicaci�n a ninguna otra persona. Si ha recibido este
correo electr�nico por error, le rogamos que nos lo devuelva mediante 
reenv�o a la direcci�n electr�nica del remitente, y lo elimine de su sistema.
Gracias por su colaboraci�n.
          ------------------------------------
The information in this e-mail and in any attachments is confidential
and solely for the attention and use of the named addressee(s). If you
are not the addressee indicated in this message, you may not copy or
deliver this message to anyone. If you have received this communication
by error, please, notify the sender by reply e-mail and destroy this
message. Thank you very much for your help.

Responder a