RDBMSとの接続(2)

 今度は前ページの例をもうちこっと強化して、データベースを検収し、編集し、 更新(データベースに反映)する、 いわば「マスターメンテナンス」機能を持つWeb画面です。 これは本当に更新しかできなくて、レコードの追加や削除はまた別途必要になるのですが、 ともあれ、歩みはのろく、ゆっくりいきましょう。

index_html (DTML Document)

<dtml-var standard_html_header>
<h2>支店テーブルの更新</h2>
<p>
更新対象のレコードの支店名を入力して下さい:<br>
<form action="DocSearchResult" method="POST">
支店名:<input type="text" name="shiten_name" maxlength="30">
<br>
<input type="submit" value="検索">
</form>
</p>
<dtml-var standard_html_footer>

検索条件を入力してもらうWebフォームです。 ページの名前を「index_html」とすると、 通常Apacheなどでディレクトリを指定したときにデフォルトで表示される 「index.html」と同じような扱いになります。

DocSearchResult (DTML Document)

<dtml-var standard_html_header>
<h2>検索しました。</h2>

<dtml-if expr="shiten_name == ''">

おおっと!検索条件を入力して下さい。

<dtml-else>

<form action="DocUpdate" method="POST">
<dtml-in expr="ZsmSearchByName(shiten_name=shiten_name)" end="1">
支店コード:<dtml-var shiten_code><br>
<input type="hidden" name="shiten_code" value="<dtml-var shiten_code>">

支店名:<input type="text" name="shiten_name" size="30" maxlength="30"
 value="<dtml-var shiten_name>"><br>
<input type="submit" value="更新">

<dtml-else>
おおっと!該当データがありませんでした。
</dtml-in>
</form>

</dtml-if>

<p>
<a href="index_html">検索入力に戻る</a>
</p>
<dtml-var standard_html_footer>

上のindex_htmlで入力されたフォーム変数「shiten_name」をキーに Z SQL Method ZsmSearchByName をコールして検索し、 結果をまたWebフォーム(マスターデータを編集しているわけですね) で表示します。Submitが押されるとDocUpdateに飛びます。

DocUpdate (DTML Document)

<dtml-var standard_html_header>
<h2>データベースに反映</h2>
<p>
支店コード:<dtml-var shiten_code><br>
支店名:<dtml-var shiten_name><br>
<dtml-call expr="ZsmUpdate(shiten_code=shiten_code, shiten_name=shiten_name)">
</p>

<a href="index_html">検索条件入力に戻る</a>
<dtml-var standard_html_footer>

最後に、編集された内容をWebフォーム変数で受け取り、 これをZ SQL Method ZsmUpdateをコールしてデータベースに反映して、 「更新しました」というメッセージと、 最初のindex_htmlに戻るリンクを表示するページです。

DocSearchResult (Z SQL Method)

select shiten_code, shiten_name from shiten
where shiten_name = <dtml-sqlvar shiten_name type="string">

支店名を条件に支店コード表を検索するZ SQL Methodです。 Connection Idは「MySQL_database_connection」、 Arguments(引数)は「shiten_name : string」です。

DocUpdate (Z SQL Method)

update shiten
set shiten_name = <dtml-sqlvar shiten_name type="string">
where shiten_code = <dtml-sqlvar shiten_code type="string">

引数で受け取った内容を、データベースに反映するZ SQL Methodです。 Connection Idは「MySQL_database_connection」、 Arguments(引数)は「shiten_code : string, shiten_name : string」です。

セクションのサブメニューに戻る
(first uploaded 2003/01/09 last updated 2003/01/09)