| Categoría : Programación
Autor : Eduardo Romero
Título : Cómo enviar parámetros a un query Descripción del truco:
Las últimas versiones de OS400 incluyeron los
objetos QMQRY para permitir una mayor flexibilidad en
la creación de queries. Pero ¿qué
hacemos cuando tenemos un query del tipo QRYDFN al cual
necesitamos proporcionarle parámetros para que
sea útil? En lugar de reescribir el query tipo
QRYDFN en una sentencia SQL para después crear
un query del tipo QMQRY podemos hacer lo que describo
a continuación.
- Edita el query tipo QRYDFN como lo harías
normalmente (WRKQRY y después opción
2 para cambiar).
- Selecciona "Select Records" para
ver el criterio de selección.
- En el criterio de selección cambia el
valor constante que quieres cambiar por un parámetro
tecleando dos puntos (:) e inmediatamente despues
el nombre de una variable por ejemplo VAR1. Este
será el nombre del parámetro. En la
columna de valores quedaría algo así
como :VAR1
- Posteriormente aparecerá una pantalla
para proporcionar calificadores de valores dependientes
(Specify Dependent Value Qualifiers). Aquí
solamente deja 1 como tipo de calificador y en el
nombre de query o archivo proporciona cualquier
nombre (aunque el objeto no exista).
- Graba el query.
- Ahora para correr el query, en lugar de utilizar
RUNQRY, puedes utilizar el comando STRQMQRY. Se
vería algo así:
STRQMQRY QMQRY(LIB/OBJ) ALWQRYDFN(*YES) SETVAR((VAR1
VALUE))
donde:
LIB es la biblioteca
OBJ es el nombre del query tipo QRYDFN
VAR1 es el nombre del parámetro definido en el
query
VALUE es el valor que tomará el parámetro.
Recuerda que si el valor es una cadena debe de llevar
3 apóstrofes de cada lado. Eso es todo. El comando STRQMQRY tomará la información
del objeto QRYDFN y reemplazará el parámetro
por el valor que se proporcione. Tienes algún truco que quieras compartir con todos
los profesionales de Recursos iSeries AS400?.Envianoslo
y si resulta seleccionado te enviaremos un vale de Amazon
por valor de 50$
|