SQL/Snippet version 0.03 ======================== NAME SQL::Snippet - Constraint-based OO Interface to RDBMS SYNOPSIS use SQL::Snippet::ExampleRepository; my $snippet = SQL::Snippet::ExampleRepository->new( @args ); # auto-instantiate the population and limit it $snippet->pop->pop_name->lim->new( 'lim_name' ); # assign select clause $snippet->pop_name->select( $select_clause ); # get sql statement suitable for handing off to DBI my $sql = $snippet->pop->pop_name->query; DESCRIPTION SQL::Snippet has two major benefits: 1) Ease of system maintenence: all SQL is removed from individual perl scripts and boiled down into unique elements. These elements are named after the real-world objects they represent and are stored in one central repository/module. When SQL adjustments or additions are needed, all changes are made in this one central repository, instead of within many individual scripts. 2) Ease of data access: In response to requests made in easy OO syntax, SQL::Snippet combines snippets from the repository on the fly to create canonical SQL. Thus programmers need not be concerned about tables and joins and other RDBMS complexities when writing a script requiring database interaction. Further, creating ad-hoc drill-down reports for end users becomes a simple exercise. ONE EXAMPLE use DBI; use Term::Interact; use SQL::Snippet::ExampleRepository; ... # set up SELECT clause to count total customers $snippet->pop->customer->select( 'SELECT count(*)' ); # set a limit on the customer population to include # only those within a particular range of zip_codes. $snippet->pop->customer-lim->zip_range->value( '10000-20000' ); # get the canonical SQL my $sql_customers = $snippet->pop->customer->query; # create the DBI statement handle my $sth = $dbh->prepare( $sql_customers ); ... DOCUMENTATION For more examples and full documentation, see perldoc SQL::Snippet as well as the source for ./Snippet/ExampleRepository.pm. INSTALLATION To install this module type the following: perl Makefile.PL make make test make install DEPENDENCIES This module requires these other modules: DBI Term::Interact COPYRIGHT AND LICENCE Copyright (C) 2002 Phil R Lawrence. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.