DBI::Format (DBI v1.14)(日本語チョー訳)

by Hippo2000(2000/6/22)

DBIに入っているDBI::Formatなのです。

なおこのドキュメントはDBIモジュールをインストールしたときに一緒にはいるFormat.pmのpodをhtml化し日本語に訳そうとしたものです。わかりにくい部分は本物を見てください。(^^;;

原本の著作権はJochen Wiedmann氏がお持ちです。
Jochen Wiedmannさんにメールで了解をいただきました。

なお内容等が間違っていたら修正します。ご連絡ください。



名前

DBI::Format - 結果テーブルを表示するためのパッケージ


概要

  # 新しい結果オブジェクトを作成する
  $r = DBI::Format->new('var1' => 'val1', ...);
  # ヘッダを作成すことで出力の準備をします
  $r->header($sth, $fh);
  # ループで各行を表示
  while ($ref = $sth->fetchrow_arrayref()) {
    $r->row($ref);
  }
  # 最後に後ろの部分を作成します
  $r->trailer();

説明

このパッケージはまだ非常に実験的なものです。変更が予想されます。

このパッケージはDBI::Shellの出力を設定可能にするために使われています。あなたが作成するであろうあらゆる種類のテーブル出力ためのサブクラスを派生させるという考え方です。例えば

将来的には、このパッケージはタブ終了のような対話型のメソッドもサポートするでしょう。

以下に使用できるメソッドを示します:

new(@attr)
 
new(\%attr)
(クラスメソッド)これはコンストラクタです。むしろサブクラスのコンストラクタを呼ぶでしょう。コンストラクはキー/値ペアのリストまたはハッシュのリファレンスを受け取ります。
header($sth, $fh)
(インスタンス・メソッド)これは新しい結果表がステートメント・ハンドル$sthの結果を表示するために作られるときに呼ばれます。(オプションの)引数$fhはIOハンドル(またはprintメソッドをサポートしているなんらかのオブジェクト)で、通常STDINのためのIO::Wrapオブジェクトを使います。(訳者注:STDOUでなくて?)
 
このメソッドは$sthNAME, NUM_OF_FIELDS, TYPE, SCALE そして PRECISION を問い合わせます。そして典型的にはヘッダを出力します。通常、$sthを本当のDBIステートメントハンドルと仮定すべきではありません、そして上記の属性をもったハッシュ・リファレンスとしてあつかったほうがよいでしょう。
 
row($ref)
(インスタンス・メソッド)配列リファレンス$refの内容を出力します。通常、この配列リファレンスは$sth->fetchrow_arrayref()を呼び出すことによって取得します。
trailer
(インスタンス・メソッド)一度、resultパッケージにすべての結果行を渡しったら、trailerメソッドを呼ばなければなりません。このメソッドは例えば結果行の数を出力するといったことができます。
 

使用できるサブクラス

まず何よりDBI::Formatパッケージそのものを使うことができます:それは抽象的な基本クラスではありませんが、とても単純でデフォルトではDBI::neat_list()を使います。


Ascii boxes

このサブクラスは内部でData::ShowTableBox モードを使っています。


作者と著作権

(原文のまま)

This module is Copyright (c) 1997, 1998

    Jochen Wiedmann
    Am Eisteich 9
    72555 Metzingen
    Germany
    Email: joe@ispsoft.de
    Phone: +49 7123 14887

The DBD::Proxy module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


参考資料

DBI::Shell, DBI(3), dbish(1)


ホーム Perlの小技

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。