SYNOPSIS

        my $sth = Class::DBI::Query
                ->new({
                        owner => $class,
                        sqlname => $type,
                        essential => \@columns,
                        where_columns => \@where_cols,
                })
                ->run($val);

DESCRIPTION

This abstracts away many of the details of the Class::DBI underlying \s-1SQL\s0 mechanism. For the most part you probably don't want to be interfacing directly with this.

The underlying mechanisms are not yet stable, and are subject to change at any time.

OPTIONS

A Query can have many options set before executing. Most can either be passed as an option to new(), or set later if you are building the query up dynamically:

owner

The Class::DBI subclass that 'owns' this query. In the vast majority of cases a query will return objects - the owner is the class of which instances will be returned.

sqlname

This should be the name of a query set up using set_sql.

where_clause

This is the raw \s-1SQL\s0 that will substituted into the '\s-1WHERE\s0 %s' in your query. If you have multiple %s's in your query then you should supply a listref of where_clauses. This \s-1SQL\s0 can include placeholders, which will be used when you call run().

essential

When retrieving rows from the database that match the \s-1WHERE\s0 clause of the query, these are the columns that we fetch back and pre-load the resulting objects with. By default this is the Essential column group of the owner class.

METHODS

\fIwhere()\fP

$query->where($match, @columns);

This will extend your '\s-1WHERE\s0' clause by adding a '\s-1AND\s0 $column = ?' (or whatever $match is, isntead of \*(L"=\*(R") for each column passed. If you have multiple \s-1WHERE\s0 clauses this will extend the last one.