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.