IBM Books

Guia de Referência do Net.Data


Variáveis Condicionais


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

O valor de uma variável condicional é condicionalmente definido baseado no valor de outra variável ou cadeia. Essa é também chamada de uma operação ternária.

test ? valorReal : valorFalso

teste
Uma condição para testar.

valorReal
O valor a ser usado se o teste for verdadeiro.

valorFalso
O valor a ser usado se o teste for falso.

Exemplo 1: Se varB existe, varA=valor_1, caso contrário varA=valor_2.

varA=varB ? "valor_1" : "valor_2"

Exemplo 2: Neste caso, varname é nulo se valor_1 for nulo, caso contrário varname é definido a valor_1.

varname = ? "$(value_1)"

Exemplo 3: Variáveis Condicional e LIST são mais efetivas quando usadas em conjunto. Este exemplo mostra como definir uma lista WHERE no bloco DEFINE. As variáveis cust_inp e prod_inp são variáveis de entrada HTML passadas de CGI, geralmente a partir de um formulário HTML. A variável where_list é uma variável LIST feita de duas construções condicionais, cada instrução contendo uma variável de CGI.

%DEFINE{
%list " AND " where_list
where_list    =  ? "custid = $(cust_inp)"
where_list    =  ? "product_name LIKE '$(prod_inp)%'"
where_clause  =  ? "WHERE $(where_list)"
%}
 
%FUNCTION(DTW_SQL) mySelect() {
   SELECT * FROM prodtable $(where_clause)
%}

Se CGI retornar valores de ambas variáveis cust_inp e prod_inp, por exemplo, IBM e 755C, a where_clause é:

WHERE custid = IBM AND product_name LIKE '755C%'

Se a variável cust_inp ou prod_inp for nula, ou não definida, a cláusula WHERE se altera para omitir o valor nulo. Por exemplo, se prod_inp for nulo, a cláusula WHERE é:

WHERE custid = IBM

Se ambos valores forem nulos ou indefinidos, a variável where_clause é nula e nenhuma cláusula WHERE aparece em consultas SQL contendo $(where_clause).


[ Início da Página | Página Anterior | Próxima Página | Tabela de Conteúdos | Índice ]