Symfoware Server WebDBtoolsユーザーズガイド - FUJITSU -
|
目次
索引

|
3.6.4 データ検索:範囲指定検索

■処理の内容
指定された範囲内のデータをデータベースから検索し、その結果を表示します。
■サンプルプログラム
ifexam.html
・・・
<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="ifexam_fmt.html">
下限:<INPUT TYPE="TEXT" NAME="Low"> 円 〜 上限:<INPUT TYPE="TEXT" NAME="High"> 円<BR>
<INPUT TYPE="SUBMIT" VALUE="検索">
</FORM> (1)
・・・ |
(1) 上限および下限の設定
指定された上限を“high”、下限を“low”に設定し、ifexam_fmt.html に引き継ぎます。
ifexam_fmt.html
・・・
<!IF 'QUERY::Low ne "" && QUERY::High ne ""'> <!-- 下限も上限も0でない場合 -->
<!SETVAR cond "WHERE 価格 >= $QUERY::Low AND 価格 <= $QUERY::High"> (2)
<!ELSEIF 'QUERY::Low ne ""'>
<!SETVAR cond "WHERE 価格 >= $QUERY::Low"> (2)
<!ELSEIF 'QUERY::High ne ""'>
<!SETVAR cond "WHERE 価格 <= $QUERY::High"> (2)
<!ELSE>
<!SETVAR cond '""'> (2)
<!/IF>
<!DO "SELECT 製品名,価格 FROM WL_SCHEMA.製品表 $cond" RESULT=rslt> (3)
<!IF 'listlen(rslt)==0'>
該当するデータはありません。<BR>
<!/IF>
<TABLE BORDER=1>
<!FOREACH rslt t>
<TR>
<TD><!HREPLACE 't{製品名}'></TD>
<TD><!HREPLACE 'format(t{価格},"fix:delimit=3")'> 円</TD>
</TR>
<!/FOREACH>
</TABLE> (4)
・・・ |
(2) “high”、“low”の関係の確認および検索のための文字列の設定
ifexam.html から引き継いだ“high”と“low”の関係を確認します。“high”または“low”に0またはスペースが指定されているかどうかでデータベースを検索するための変数“cond”に設定する文字列が変わります。
(3) データベースの検索
データベースから“cond”に設定された文字列に合致するもの検索し、結果を“rslt”に格納します。
(4) 検索結果の表示
検索した情報の製品名、価格をすべて表示します。
■解説
ifexam.html で検索する上限と下限を指定して、それぞれを“high”と“low”に格納し、データベースを検索するためにifexam_fmt.html へ処理を引き継ぎます。 ifexam_fmt.html では、ifexam.html から引き継いだ“high”と“low”の2つの変数を、データベースが検索できるように1つの文字列に変換します。これを検索対象としてデータベースを検索し、結果を表示します。

データベースの範囲検索を行う場合、設定された上限、下限の2つの値によってデータベースを検索するための文字列が変わってきます。この場合、サンプルプログラムの(2)で示したように、値によって検索式が選択されるようにすることをお勧めします。
All Rights Reserved, Copyright(C) 富士通株式会社 2007