We recommend that you do NOT use CAM::SQLManager directly,
but instead use the more convenient wrapper,
CAM::SQLObject.
In that case,
you can skip to the bottom to learn about the XML files.
If you do choose to use this directly,
here's how it goes:

This package implements SQL templates. This allows the programmer to increase the separation between the SQL RDBMS and the Perl programming logic of any project. This package has features that make it particularly useful in a web environment, as it is quite easy to write a CGI program to allow testing and evalutation of the SQL templates.

As of v1.12, we have added support for non-Unix file systems via File::Spec. This is intended to enable Win32 usage of this module. As of v1.13, this is pretty well tested in production by the authors, so we think it should work fine for you.

Warning: this function relies on XML::Xerces. If XML::Xerces is not installed, this routine will always indicate that the document is invalid.

Test the integrity of the XML encapsulation of the SQL statement(s). Returns true of false to indicate success or failure. On failure, it sets $CAM::SQLManager::errstr with an error description. Succeeds automatically on a non-XML SQL file.

Run a SELECT style query called <queryname>, substituting the parameter list into the SQL template. Returns an executed DBI statement handle object, or undef on failure.

if <queryname> is undefined or the empty string, the default query will be used. The default is either a query with no name, if one exists, or the first query in the query definition file. If a nonexistent query is requested, undef is returned.

Run a INSERT/UPDATE/DELETE style query, substituting the parameter list into the SQL template. Returns a scalar indicating the result of the statement (false for failure, number of rows affected on success).

Run the specified query and fill in the object with the returned fields. The object should already exist and should have enough fields filled in to make the query return a unique object. If any command in the query returns zero or more than one rows, this request will fail.

Run the specified query and return an array of objects of class PACKAGE. The objects will be created by calling PACKAGE->new(). Any extra arguments to this function will be passed as arguments to new(). The objects will be filled with the values from the rows returned by the query.

NEW_ARGS is an array reference of arguments passed to the 'new' function of PACKAGE.

A nearly complete CGI program to run tests on your library SQL commands. You may optionally pass it a CGI object, if you want it to work as part of a larger framework. Otherwise, the function instantiates it's own CGI object. Here is an complete CGI program using this function: