DBIx::Browse - Module to browse related tables. (c) Copyright 2000 Evilio José del Río Silván This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Description ----------- DBIx::Browse is a module to facilitate the browsing (INSERT, UPDATE and DELETE) of related database tables. Build and Install ----------------- All you have to do to build, test and install this stuff, if your connected to the Internet, is: perl Makefile.PL make make test make install NOTE: To perform all tests, including inserting, updating and deleting some rows, you need to set two environment variables: DBI_DSN : The DBI(3) default Data Source Name (see DBI(3)). DBIX_BROWSE_MAKE_TEST : If set to some true value, the tests will be performed. These tests expect to find in the databese pointed by DBI_DSN two tables as described by the examples/test.psql. This file is written in Postgres dialect but can be adapted easily to others. Be careful since the operations performed by the test could destroy some valuable information (that's why I require a special environment variable to be set before connecting to DBI). Usage Overview -------------- use DBIx::Browse; my ($dbh, $dbb, $q); $dbh = DBI->connect("DBI:Pg:dbname=enterprise") or croak "Can't connect to database: $@"; $dbb = new DBIx::Browse({ dbh => $dbh, table => 'employee', proper_fields => [ qw ( name fname ) ], linked_fields => [ qw ( department category office ) ], linked_tables => [ qw ( department category office ) ], linked_values => [ qw ( name name phone ) ], linked_refs => [ qw ( id id id ) ], aliases => [ qw ( name fname department category phone )], primary_key => 'id' }); $my $sth = $db->prepare({ where => "departament = 'Adminitstration' AND age < 35", order => "name ASC, departament ASC" } $dbb->insert({ name => 'Doe', fname => 'John', department => 'Sales', category => 'Sales representatn', phone => '1114' }); $dbb->update({ category => 'Sales manager', phone => '1113' }, " id = 1 " ); ...etc Examples -------- See the directory examples and the test.pl script in this distribution. Author ------ Evilio José del Río Silván