參考手冊

列示變數


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

您可以使用 LIST 語言結構建置一個有分隔設定的值串。在您希望以多個項目建構一個 SQL 查詢時, (例如,常見於一些 WHERE 或 HAVING 子句中), 這類變數尤其有用。

空白是具有其意義的。您通常會在值的兩邊留空白。大部份的查詢會使用布林或算術運算子 (例如,AND、OR 或 >)。有關語法及範例,請參閱 LIST 陳述式

範例 1: 使用條件式、隱藏及列示變數

%HTML(INPUT){
<form method="post" action="/cgi-bin/db2www/example2.max/report">
請選取一或多個都市:<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>
%}
 
%DEFINE{
DATABASE="custcity"
%LIST " OR " conditions
cond1="cond1='Sao Paolo'"
cond2="cond2='Seattle'"
cond3="cond3='Shanghai'"
whereClause= ? "WHERE $(conditions)"
%}
 
%FUNCTION(DTW_SQL) mySelect(){
SELECT name, city FROM citylist
$(whereClause)
%}
 
%HTML(REPORT){
@mySelect()
%}

在 HTML 套表中,如果沒有勾選選項框,則 conditions 為空值, 所以 whereClause 在查詢中也是空值。否則, whereClause 會有選取的值,該值以布林運算子 OR 加以區隔。例如, 若三個城市全選,則 SQL 查詢會是:

SELECT name, city FROM citylist
WHERE cond1='Sao Paolo' OR cond2='Seattle' OR cond3='Shanghai'

範例 2:值區隔符號

%DEFINE %LIST " | " VLIST
%REPORT{
%ROW{
<em>$(ROW_NUM):</em> $(VLIST)
%}
%}

在此例中,表格處理程序變數 VLIST 是使用兩個雙引號和一個 OR 條欄 ( |), 作為值區隔符號。字值串是由用引號括住的值加以分隔。


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]