dbimon - interactive shell with readline for DBI


SYNOPSIS

       `dbimon <dsn> [<user> [<password>]]'
                [<options>]


DESCRIPTION

       dbimon lets you talk to a running SQL server via the
       database independent Perl interface DBI. dbimon was
       inspired by Andreas Koenig's pmsql and borrows both design
       ideas and code from it. Thus the look and feel is almost
       identical to pmsql, in particular the following holds:

       ·   The output is formatted much in the same way as by the
           msql or mysql monitor (see below), the msqlexport com­
           mand and the relshow (mysqlshow) programs, which are
           coming with msql or mysql.

       ·   The additional capability is a connection to a read­
           line interface (if available) and a pipe to your
           favorite pager.

       ·   Additionally you may switch between hosts and
           databases within one session and you don't have to
           type the nasty `\g' or `;' (a trailing `\g', `\q', and
           `\p' will be ignored).

       If a command starts with one of the following reserved
       words, it's treated specially, otherwise it is passed on
       verbatim to the DBMS.  Output from the daemon is piped to
       your pager specified by either the DBIMON_PAGER or the
       PAGER environment variable. If both are undefined, the
       PATH is searched for either "less" or "more" and the first
       program found is taken. If no pager can be determined or
       your pager variable is empty or set to `stdout', the pro­
       gram writes to unfiltered STDOUT.

       `?'
         print usage summary

       `dsn <dsn>'
         Connects to the given <dsn>, the old connection is
         closed.

       `q[uit]'
         Leave dbimon.

       `re[lshow] [<dsn> [<table>]]'
         Without arguments this lists possible data sources by
         calling DBI's data_sources method. Data sources are
         driver dependent, the driver of the last connection will
         be used. Unfortunately DBI offers no possibilities of
         specifying a hostname or similar dsn attributes, so you


         If a `dsn' is given, dbimon will connect to the given
         dsn and list its tables. If both `dsn' and `table' are
         present, dbimon will list the tables fields.

         The latter possibilities are not supported by the DBI -
         these work with private methods. Currently they are
         implemented for DBD::mSQL and DBD::mysql.

       `se[t] [<var> [<val>]]'
         This command displays and modifies dbimon's internal
         variables.  Without arguments, all variables and their
         current settings are listed. With a variable name only
         you query the variables value.  The two argument form
         modifies a variable. Supported variables are:

         showMode
             This variable controls the output of an SQL result
             table. Possible values are `Box', `Export', `List',
             `Table' and `HTML'. These correspond to modes of the
             Data::ShowTable module with the exception of
             `Export': This is handled by dbimon internally, as
             Data::ShowTable doesn't offer such a mode. The
             `Export' mode is well suited for exporting data to
             other database systems. See Data::ShowTable(3).

         less
             This is the pager variable. You can turn off paging
             by setting this to 'stdout'.

         listWrapMargin

         maxTableWidth

         noEscape
             These correspond to the variables `$List_Wrap_Mar­
             gin', `$Max_Table_Width' and `$No_Escape' of the
             Data::ShowTable module. See Data::ShowTable(3).

         escapeChar

         quoteChar

         sepChar
             For `Export' mode dbimon will use these variables.
             Columns are surrounded by the quoteChar, separated
             by the sepChar and the escapeChar is used for
             inserting these special characters.  The defaults
             are well suited for Excel (escapeChar = `"',
             quoteChar = `"' and sepChar = `;'), thus a row with
             the values 1, 'walrus' and 'Nat "King" Cole' will be
             displayed as


       `! EXPR'
         Eval the EXPR in perl

       Dumping a database contents

       The option --dump forces dump of a databases contents,
       much like msqldump or mysqldump do. By default all tables
       are dumped, but you can override this with a sequence of
       --table $table options.

       Dumping means to emit a

           CREATE TABLE $table (...)

       statement (unless the option --no-dump-structure is
       given), followed by a sequence of

           INSERT INTO $table (...)

       statements, one per row, unless you use the option --no-
       dump-data.  By default INSERT statements don't include
       column names, but the option --dump-names can force that.

       Completion

       dbimon comes with some basic completion definitions that
       are far from being perfect. Completion means, you can use
       the TAB character to run some lookup routines on the cur­
       rent dsn or table and use the results to save a few
       keystrokes.

       The completion mechanism is very basic, and I'm not
       intending to refine it in the near future. Feel free to
       implement your own refinements and let me know, if you
       have something better than what we have here.


SEE ALSO

       You need a readline package installed to get the advantage
       of a readline interface. If you don't have it, you won't
       be able to use the arrow keys in a meaningful manner.
       Term::ReadKey and Term::ReadLine do not come with the perl
       distribution but are available from CPAN (see
       http://www.perl.com/CPAN).

       See the pmsql (1) entry elsewhere in this document, the
       DBI (3) entry elsewhere in this document, the Term::Read­
       Key (3) entry elsewhere in this document, the Term::Read­
       Line (3) entry elsewhere in this document,


Man(1) output converted with man2html