Lesson 12. The Elvis Files, cont 最後のレッスンでは Elvis 目撃情報データベースを作る。今度はこのデータベースに訪問者からの目撃情報の submit を許可するように改造しよう。 このレッスンは最後の2つのレッスンで得た経験の上に成り立っている。みんなが目撃情報を報告できるようにするにはまさに lesson 10 で使ったような form を使わなければいけないだろう。 1. reportForm という名前の DTML ドキュメントをクリックし、この内容を見る。 このドキュメントは Lesson 10 の reportAction ドキュメントよりシンプルだ。これのやることはユーザーに感謝を表し、このコードで insertStrings ZSQL Method をコールしている。 実際は insertString ZSQL Method が働いている。じゃあその方法を見てみよう。 1. insertString ZSQL Method をクリックしてこの内容を見る。 query template は以下の SQL コードを含んでいる。 insert into elvis_sightings values( , , , ) このコードは elvis_sightings テーブルに列を挿入する。この ZSQL Method の引数がどのように reportSighting ドキュメントの中の form 要素と合致するのかに注意してほしい。 この SQL コードが正しく動作するか確認するためにテストすることができる。 1. Test タブをクリックする。 2. 自動的に作成された form の中にいくつかのサンプルデータを入力する。 3. Submit Query ボタンをクリックする。 Zope はこの SQL コードをデータベースに送り、送られた SQL コードとデータベースの返した結果を教えてくれるだろう。この場合、データベースは何も返さないだろう、なぜなら SQL INSERT コマンドは何も結果を生み出さないからだ。 今度は sightings ドキュメントに戻り、サンプルデータが目撃情報リストに加えられているかどうか見てほしい。ちょっとこのシステムで遊んみて、sightings と reportForm と reportAction ドキュメントがどのようにリンクしてサイト訪問者を誘導するのかを見てほしい。 まとめ Zope を使って簡単にリレーショナルデータベースのデータを変更できる。データを挿入するプロセスとデータベースに照会するプロセスは非常によく似ている。両方の場合で ZSQL Method を使う。 - ZSQL Method はリレーショナルデータベースの情報に変更を加えることができる。 - DTML から ZSQL Method に引数を与えることができる。 - 多くの ZSQL Method は Database Connection と同じ使い方ができる。