IBM Books

Net.Data 参考

条件变量


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

条件变量的值是根据另一个变量或字符串的值来有条件地设置的。这也称为三元操作

条件变量的语法是:

test ? trueValue : falseValue

其中:

test
要测试的条件。

trueValue
当 test 为真时使用的值。

falseValue
当 test 为假时使用的值。

例 1:用两个可能的值定义的条件变量

varA = varB ? "value_1" : "value_2"

如果 varB 存在,varA=value_1,否则 varA=value_2

例 2:用一个变量引用定义的条件变量

varname = ? "$(value_1)"

在此情况下,如果 value_1 为空,则 varname 为空,否则 varname 设置成 value_1

例 3:使用一个 LIST 语句和 WHERE 子句的条件变量

%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)
%}

条件变量和列表变量一起使用时最有效。 上面的例子显示了如何在 DEFINE 块中建立一个 WHERE 子句。 变量 cust_inpprod_inp 都是从 Web 浏览器(通常是 HTML 表)传递过来的 HTML 输入变量。变量 where_list 是一个 LIST 变量,由两个条件语句组成,每个语句包 含一个来自 Web 浏览器的变量。

如果 Web 浏览器对变量 cust_inpprod_inp 同时返回值,例如 IBM755C,则 where_clause 是:

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

如果变量 ccust_inpcprod_inp 中有一个为空或未定义,则更改 WHERE 语 句,省略其中的空值。 例如,如果 prod_inp 为空,则 WHERE 子句是:

WHERE custid = IBM

如果两个值都为空或未定义,则变量 cwhere_clause 为空,并且包含有 $(where_clause) 的 SQL 查询中没有 WHERE 子句。


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]