---
name: "DBI::Format"
section: "3pm"
platform: "linux"
package: "perl-dbi-shell"
version: "11.98-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/DBI::Format"
---

# DBI::Format(3pm)

A package for displaying result tables

## NAME

DBI::Format - A package for displaying result tables

## SYNOPSIS

```
  # 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();
```

## DESCRIPTION

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.

## AVAILABLE SUBCLASSES

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.

## AUTHOR AND COPYRIGHT

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.

## SEE ALSO

**DBI::Shell**(3), **DBI**(3), [**dbish**(1)](/dbish/1.md)
