AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | PTX | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
Puede utilizar variables de lista para crear una serie delimitada de valores. Pueden resultar especialmente útiles para ayudarle a crear una consulta SQL con varios elementos como los que contienen algunas cláusulas WHERE o HAVING.
Los blancos son significativos. Normalmente es deseable tener un espacio en blanco a ambos lados del valor. La mayoría de las consultas utilizan operadores Booleanos o matemáticos (por ejemplo, AND, OR y >). Consulte el apartado Sentencia LIST para conocer la sintaxis y obtener más información.
Ejemplo 1: Utilización de variables condicionales, ocultas y de lista
%DEFINE { DATABASE="custcity" %LIST " OR " conditions cond1="cond1='Sao Paolo'" cond2="cond2='Seattle'" cond3="cond3='Shanghai'" whereClause= ? "WHERE $(conditions)" %} %HTML(INPUT){ <form method="post" action="/cgi-bin/db2www/example2.max/report"> Select one or more cities:<br /> <input type="checkbox" name="conditions" value="$$(cond1)" />Sao Paulo<br /> <input type="checkbox" name="conditions" value="$$(cond2)" />Seattle<br /> <input type="checkbox" name="conditions" value="$$(cond3)" />Shanghai<br /> <input type="submit" value="submit query" /> </form> %} %FUNCTION(DTW_SQL) mySelect(){ SELECT name, city FROM citylist $(whereClause) %} %HTML (Report){ @mySelect() %}
Si no se selecciona ningún recuadro en el formato HTML, entonces conditions está vacía, por lo que whereClause también se encuentra vacía en la consulta. En caso contrario, whereClause tiene los valores seleccionados separados mediante el operador Booleano OR. Por ejemplo, si se seleccionan las tres ciudades, la consulta de SQL es:
SELECT name, city FROM citylist WHERE cond1='Sao Paolo' OR cond2='Seattle' OR cond3='Shanghai'
Ejemplo 2: Separadores de valores
%DEFINE %LIST " | " VLIST %REPORT{ %ROW{ <em>$(ROW_NUM):</em> $(VLIST) %} %}
En este ejemplo, la variable de proceso de tabla VLIST utiliza comillas dobles y una barra OR, ( | ), como separador de valores. La serie de valores está separada por el valor entre comillas.