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

第2部 使用手引き編> 第6章 データベース連携> 6.6 拡張タグ使用例

6.6.7 データ更新:データ更新

■処理の内容

データベースに登録されているデータを変更します。

■サンプルプログラム

update.html
・・・
<!DO "SELECT 名称 FROM WL_SCHEMA.保養所" RESULT=rslt>  (1)
<!FOREACH rslt t>
    <!SETVAR uname 'URLencode(t{名称})'>
    <A HREF="$SYSTEM::FMTR?WIT_html=update_fmt1.html&Name=$uname">
    <!HREPLACE 't{名称}'></A><BR>
<!/FOREACH>                                             (2)
・・・

(1) 更新データを選択するためのデータベースの全件検索
更新するデータを選択するために、データベースを全件検索します。
(2) 検索結果の表示および更新データの選択
検索した結果の名称を表示します。名称はすべてURLに変換され、“uname”に格納されます。更新対象の名称を選択すると“uname”を“Name”に代入しupdate_fmt1.html に引き継ぎます。

update_fmt1.html
・・・
<!DO "SELECT 名称,地域,所在地,電話番号,部屋数,宿泊料金,交通
      FROM WL_SCHEMA.保養所 WHERE 名称 LIKE '$QUERY::Name'" RESULT=rslt>          (3)
<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="Name_orig" VALUE="$(rslt[0]{名称})">
<TABLE BORDER=0>
    <TR>
        <TD>名称</TD><TD>:</TD>
        <TD><INPUT TYPE="TEXT" NAME="Name" VALUE="$(rslt[0]{名称})"></TD>
    </TR>
    <TR>
        <TD>地域</TD><TD>:</TD>
        <TD>
        <!FOREACH '("北海道・東北", "中部・北陸", "関東", 
                    "近畿", "中国・四国", "九州・沖縄")' s_area>
            <!SETVAR if_check "">
            <!IF 'rslt[0]{地域} eq s_area'>
                <!SETVAR if_check "CHECKED">
            <!/IF>
            <!SETVAR inp "<INPUT TYPE='radio' NAME='Area' VALUE='$s_area' $if_check>">
            <!REPLACE inp><!HREPLACE s_area>
        <!/FOREACH>
        </TD>
    </TR>
    <TR>
        <TD>所在地</TD><TD>:</TD>
        <TD><INPUT TYPE="TEXT" NAME="Place" VALUE="$(rslt[0]{所在地})" SIZE=40></TD>
    </TR>
    <TR>
        <TD>電話番号</TD><TD>:</TD>
        <TD><INPUT TYPE="TEXT" NAME="Tel" VALUE="$(rslt[0]{電話番号})"></TD>
    </TR>
    <TR>
        <TD>部屋数</TD><TD>:</TD>
        <TD><INPUT TYPE="TEXT" NAME="Room" VALUE="$(rslt[0]{部屋数})"></TD>
    </TR>
    <TR>
        <TD>宿泊料金</TD><TD>:</TD>
        <TD><INPUT TYPE="TEXT" NAME="Price" VALUE="$(rslt[0]{宿泊料金})"> 円</TD>
    </TR>
    <TR>
        <TD>交通</TD><TD>:</TD>
        <TD><TEXTAREA NAME="Trans" COLS=50 ROWS=5>
            <!HREPLACE '(rslt[0]{交通})'></TEXTAREA></TD>
    </TR>
</TABLE>
<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="update_fmt2.html">
<INPUT TYPE="SUBMIT" VALUE="更新">
<INPUT TYPE="RESET" VALUE="やり直し">
</FORM>                                                                         (4)
・・・

(3) 更新対象の情報の検索
update.html から引き継いだ“Name”を基に更新対象の情報をデータベースから検索します。
(4) 更新情報の入力
表示された情報を更新します。1件の情報の更新が終了したら、[更新]ボタンをクリックします。入力をやり直す場合[やり直し]ボタンをクリックします。[更新]ボタンをクリックすることで処理とデータをupdate_fmt2.html に引き継ぎます。

update_fmt2.html
・・・
<!DO "UPDATE WL_SCHEMA.保養所
        SET 名称='$QUERY::Name',地域='$QUERY::Area',所在地='$QUERY::Place',
        電話番号='$QUERY::Tel',部屋数=$QUERY::Room,宿泊料金=$QUERY::Price,
        交通='$QUERY::Trans' WHERE 名称 LIKE '$QUERY::Name_orig'">   (5)
<!DO "SELECT 名称,地域,所在地,電話番号,部屋数,宿泊料金,交通
          FROM WL_SCHEMA.保養所" RESULT=rslt>                   (6)
<TABLE BORDER=1>
    <TR>
        <TD>名称</TD>
        <TD>地域</TD>
        <TD>所在地</TD>
        <TD>電話番号</TD>
        <TD>部屋数</TD>
        <TD>宿泊料金</TD>
        <TD>交通</TD>
    </TR>
    <!FOREACH rslt t>
        <TR>
            <TD><!HREPLACE 't{名称}'></TD>
            <TD><!HREPLACE 't{地域}'></TD>
            <TD><!HREPLACE 't{所在地}'></TD>
            <TD><!HREPLACE 't{電話番号}'></TD>
            <TD><!HREPLACE 't{部屋数}'></TD>
            <TD><!HREPLACE 't{宿泊料金}'></TD>
            <TD><!HREPLACE 't{交通}'></TD>
        </TR>
    <!/FOREACH>
</TABLE>                                                           (7)
・・・

(5) 情報の更新
update_fmt1.html から引き継いだ情報でデータベースを更新します。
(6) 更新後のデータベースの全件検索
更新した情報が正確に更新されているかを確認するために、データベースの内容を全件検索します。
(7) 検索結果の表示
データベースを全件検索した結果を、すべて表示します。

■解説

update.html でデータベースの内容をすべて表示し、更新するデータを選択します。選択したデータの一部をキーとして、update_fmt1.html に引き継ぎます。
update_fmt1.html では、update.html から引き継いだキーを基にデータベースを検索し、内容を表示して更新データを入力します。入力されたデータを更新するために、update_fmt2.html へ入力データと処理を引き継ぎます。
update_fmt2.html では、update_fmt1.html から引き継いだデータを基にデータベースを更新し、確認のためにデータベースの情報をすべて表示します。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005