Last updated: 12/22/2002 Top ドキュメントTop

データベース管理システム 管理者用ガイド
基本的な処理の流れと関連するAPI

フォームを使ったデータの追加/修正

概要

データの流れ

データの追加を開始する場合は通常 DBIPgSystem::start_insert メソッド が、 データの修正を開始する場合は通常 DBIPgSystem::search_detail メソッド が呼び出されます。

フォームに入力された値の解析が DBIPgSystem::data_check メソッド によって行われ、 データベースへの挿入が DBIPgSystem::data_insert メソッド によって行われます。

DBIPgSystem::start_insert メソッド

パラメータ

srcsid ( STRING )
検索用のセッションのID。

出力

data = { } ( HASHREF )
データの情報。
system = { } ( HASHREF )
システム定義カラムの情報。
revise = 0 ( BOLEAN )
inssid ( STRING )
挿入用のセッションのID。
error = [ ] ( ARRAYREF )
エラーの情報。
warning = [ ] ( ARRAYREF )
警告の情報。
page = 1 ( NUM )
ページ番号。
islast ( BOOLEAN )
次に確認のページに移動できる場合は 1。
srcsid = $qs->{srcsid} ( STRING )
vpage = [ ] ( ARRAYREF )
vpage->[$n] の値が 1 ならば、n + 1 ページが既に処理済み、 さもなければまだ処理が済んでいないことを示す。

補足説明

DBIPgSystem::start_insert メソッド を参照してください。

DBIPgSystem::search_detail メソッド

データの詳細表示 DBIPgSystem::search_detail メソッドの節に記述があります。

DBIPgSystem::data_check メソッド

パラメータ

code_dist ( STRING )
文字コードに判別に利用される文字列。 文字コード のページを参照してください。
verify ( BOOLEAN )
挿入の確認のページを表示させたい場合は true にします。
inssid ( STRING )
挿入用のセッションのID。
page ( NUM )
呼び出し元のページのページ番号
system_state ( NUM )
システム定義カラムの system_state。 挿入するデータの状態を指定します。
noencoded ( BOOLEAN )
code を利用するカラムの値としてエンコードされる前の値で 指定する場合は true、コードで指定する場合は false にします。
nextpage:* ( NULL )
次に表示するページ。 ページの値は、パラメータ名の '*' の箇所で指定します。 (フォームのボタンを使って次のページを容易に設定できるよう、 このような仕様になっています。) このパラメータの値は意味を持ちません。
:* ( STRING )
主テーブルのカラムの値。'*' にはカラム名を指定します。 '*' には、'カラム名?キー' を指定することもできます。 これは、カラムに複数の値を入力したい場合に、 キーの部分を変えて値を複数回指定する場合に利用します。
:*:*:* ( STRING )
関連テーブルのカラムの値。1番目の '*' にはテーブル名を、 2番目の '*' には関連テーブルのレコードの順番 (1, 2, 3, ...) を、 3番目の '*' にはカラム名を指定します。 3番目の '*' には、'カラム名?キー' を指定することもできます。 これは、カラムに複数の値を入力したい場合に、 キーの部分を変えて値を複数回指定する場合に利用します。
:*:select ( STRING )
主テーブルにおけるファイルのアップロードに関する設定。 '*' にはカラム名を指定します。 値には、目的応じて 'unchange', 'restore', 'file', 'none' のいずれかを指定します :
unchange
現在の値を継続して使う。
restore
修正元のデータと同じ状態に戻す。
file
ファイルを受け取る(ファイルは :* or :*:*:* で受け取ります)。
none
ファイルを使わない。
:*:*:*:select ( STRING )
関連テーブルにおけるファイルのアップロードに関する設定。 1番目の '*' にはカラム名を、 2番目の '*' には関連テーブルのレコードの順番 (1, 2, 3, ...) を、 3番目の '*' にはカラム名を指定します。 値には、'unchange', 'restore', 'file', 'none' のいずれかを指定します。
:*:insert:* ( NUM )
関連テーブルのレコードを別の位置に挿入するための設定。 1番目の '*' にはテーブル名、 2番目の '*' には関連テーブルのレコードの順番 (1, 2, 3, ...) を指定します。 値には、挿入先のレコードの順番を指定します。 例えば、関連テーブル 'table1' の 3番目のレコードを 2番目に移動させるためには、パラメータ ':table1:insert:3' に、 値 '2' を指定します。 (指定した値のレコードの直前に移動します。)
:*:delete:* ( BOOLEAN )
関連テーブルのレコードを削除するための設定。 1番目の '*' にはテーブル名、 2番目の '*' には関連テーブルのレコードの順番 (1, 2, 3, ...) を指定します。 値が true ならば、対応するレコードが削除され、 それ以降のレコードは前に詰められます。

出力

data ( HASHREF )
データの情報。 data->{テーブル名}[レコードの順番]{カラム名} に、 対応するカラムの値が格納されています。 ただし、レコードの順番は 0 から始まり、 主テーブルの場合は 0 しか存在しません。
presys ( HASHREF )
修正元のデータのシステム定義カラムの情報。 presys->{カラム名} に、対応する値が格納されています。
system ( HASHREF )
システム定義カラムの情報。 system->{カラム名} に、対応する値が格納されています。
revise ( BOLEAN )
データの修正ならば 1。
inssid ( STRING )
挿入用のセッションのID。
error ( ARRAYREF )
エラーの情報。errwarn->{error}{テーブル名}[レコードの順番]{カラム名} の各値を要素とする配列へのリファレンスです。
warning ( ARRAYREF )
警告の情報。errwarn->{warning}{テーブル名}[レコードの順番]{カラム名} の各値を要素とする配列へのリファレンスです。
page ( NUM )
ページ番号。
islast ( BOOLEAN )
次に確認のページに移動できる場合は 1。
srcsid = $qs->{srcsid} ( STRING )
vpage ( ARRAYREF )
vpage->[$n] の値が 1 ならば、n + 1 ページが既に処理済み、 さもなければまだ処理が済んでいないことを示す。
errwarn ( HASHREF )
エラーと警告の情報。詳しくは DBIPgSystem::DB::data_check メソッド を参照してください。
restore ( HASHREF )
アップロードされたファイルの修正元の値。

補足説明

DBIPgSystem::data_check メソッド, DBIPgSystem::DB::data_check メソッド を参照してください。

アップロードされたファイルにエラーがあると、 ファイルは元の状態に戻ります。 この場合、確認のため、もう一度エラーが起こったページに戻って 登録をし直すまでエラーは消ないようになっています。

フォームからファイルをアップロードする場合、 <input type="file"> のタグがあるページでは、 正しくアップロードできるように FORMタグの enctype属性の値を "multipart/form-data" としてください。 さもなければ、致命的なエラーが起こることがあります:

<form method="post" action="..." enctype="multipart/form-data"> ... </form>

DBIPgSystem::data_insert メソッド

パラメータ

inssid ( STRING )
挿入用のセッションのID。
system_state ( NUM )
システム定義カラムの system_state。 挿入するデータの状態を指定します。
srcsid ( STRING )
検索用のセッションのID。

出力

エラーがあった場合は、DBIPgSystem::data_check メソッドの戻り値と 同様です。正しく挿入できた場合の戻り値を、以下に示します。
rid ( NUM )
挿入したデータの RID。
revise ( BOLEAN )
データの修正ならば 1。
srcsid = $qs->{srcsid} ( STRING )

補足説明

DBIPgSystem::data_insert メソッド, DBIPgSystem::DB::data_insert メソッド を参照してください。