GNU/Linux |
RedHat 9.0(Shrike) |
|
![]() |
DBI::Format(3pm) |
![]() |
DBI::Format − A package for displaying result tables
# create a new result object $r = DBI::Format->new(’var1’ => ’val1’, ...); # Prepare it for output by creating a header $r->header($sth, $fh); # In a loop, display rows while ($ref = $sth->fetchrow_arrayref()) { $r->row($ref); } # Finally create a trailer $r->trailer();
THIS PACKAGE IS STILL VERY EXPERIMENTAL . THINGS WILL CHANGE .
This package is used for making the output of DBI::Shell configurable. The idea is to derive a subclass for any kind of output table you might create. Examples are
• |
a very simple output format as offered by DBI::neat_list(). " AVAILABLE SUBCLASSES ". | ||
• |
a box format, as offered by the Data::ShowTable module. | ||
• |
HTML format, as used in CGI binaries | ||
• |
postscript, to be piped into lpr or something similar |
In the future the package should also support interactive methods, for example tab completion.
These are the
available methods:
new(@attr)
new(\%attr)
(Class method) This is the constructor. You’d rather call a subclass constructor. The construcor is accepting either a list of key/value pairs or a hash ref.
header($sth, $fh)
(Instance method) This is called when a new result table should be created to display the results of the statement handle $sth. The (optional) argument $fh is an IO handle (or any object supporting a print method), usually you use an IO::Wrap object for STDIN .
The method will query the $sth for its NAME , NUM_OF_FIELDS , TYPE , SCALE and PRECISION attributes and typically print a header. In general you should not assume that $sth is indeed a DBI statement handle and better treat it as a hash ref with the above attributes.
row($ref)
(Instance method) Prints the contents of the array ref $ref. Usually you obtain this array ref by calling $sth−>fetchrow_arrayref().
trailer |
(Instance method) Once you have passed all result rows to the result package, you should call the trailer method. This method can, for example print the number of result rows. |
First of all, you can use the DBI::Format package itself: It’s not an abstract base class, but a very simple default using DBI::neat_list().
Ascii boxes
This subclass is using the Box mode of the Data::ShowTable module internally. Data::ShowTable(3).
Raw
Row is written without formating. Columns returned in comma or user defined separated list.
String
Row is written using a string format. Future releases will include th ability set the string format.
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(3), DBI (3), dbish(1)
![]() |
DBI::Format(3pm) | ![]() |