.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' .\" expand to `' in nroff, nothing in troff, for use with C<>. .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Gantry::Utils::DB 3" .TH Gantry::Utils::DB 3 "2008-01-18" "perl v5.8.8" "User Contributed Perl Documentation" .SH "NAME" Gantry::Utils::DB \- Database wrapper functions, specfic to PostgreSQL .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& db_commit \& db_commit( $dbh ); .Ve .PP .Vb 3 \& db_connect \& $dbh = db_connect( $db_type, $user, $pass, $server, $db, $commit ); \& $dbh = db_connect( %config_hash ); .Ve .PP .Vb 2 \& db_disconnect \& db_disconnect( $dbh ); .Ve .PP .Vb 2 \& db_finish \& db_finish( $sth ); .Ve .PP .Vb 2 \& db_lastseq \& $last_value = db_lastseq( $dbh, $sequence_name ); .Ve .PP .Vb 2 \& db_next \& ( @values ) = db_next( $sth ); .Ve .PP .Vb 2 \& db_nextvals \& $hash_reference = db_nextvals( $handle ); .Ve .PP .Vb 2 \& db_query \& $sth = db_query( $dbh, $description, @sql_query ); .Ve .PP .Vb 2 \& db_rollback \& db_rollback( $dbh ); .Ve .PP .Vb 2 \& db_rowcount \& $rows = db_rowcount( $sth ); .Ve .PP .Vb 2 \& db_run \& db_run( $dbh, $description, @sql_query ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions wrap the common \s-1DBI\s0 calls to Databases with error checking. .SH "FUNCTIONS" .IX Header "FUNCTIONS" .ie n .IP "db_commit( $dbh )" 4 .el .IP "db_commit( \f(CW$dbh\fR )" 4 .IX Item "db_commit( $dbh )" Takes a database handle and commits all pending transactions if AutoCommit is not enabled, otherwise does nothing. Returns no value. .ie n .IP "$dbh = db_connect( %config_hash )" 4 .el .IP "$dbh = db_connect( \f(CW%config_hash\fR )" 4 .IX Item "$dbh = db_connect( %config_hash )" .PD 0 .ie n .IP "$dbh = db_connect( $db_type\fR, \f(CW$user\fR, \f(CW$pass\fR, \f(CW$server\fR, \f(CW$db\fR, \f(CW$commit )" 4 .el .IP "$dbh = db_connect( \f(CW$db_type\fR, \f(CW$user\fR, \f(CW$pass\fR, \f(CW$server\fR, \f(CW$db\fR, \f(CW$commit\fR )" 4 .IX Item "$dbh = db_connect( $db_type, $user, $pass, $server, $db, $commit )" .PD Creates a connection to the database specified by \f(CW$db\fR on host \f(CW$server\fR. It then returns a \f(CW$dbh\fR variable containing the connection. The hash has the values db_type, usr, pwd, db, srv, commit for the respective variables. Commit should be specified as the text 'on' or 'off', case does not matter. \&'db_type' should be a valid \s-1DBI\s0 database type ( eg. 'Pg' for postgres. ). .ie n .IP "db_disconnect( $dbh )" 4 .el .IP "db_disconnect( \f(CW$dbh\fR )" 4 .IX Item "db_disconnect( $dbh )" Takes a database handle and disconnects that connection to the database, it will also rollback any pending transactions that have not been commited with \fIdb_commit()\fR. Returns no value. .ie n .IP "db_finish( $sth )" 4 .el .IP "db_finish( \f(CW$sth\fR )" 4 .IX Item "db_finish( $sth )" Finishes a statement handle after a \fIdb_query()\fR is completed. Returns nothing. .ie n .IP "$last_value = db_lastseq( $dbh\fR, \f(CW$sequence_name )" 4 .el .IP "$last_value = db_lastseq( \f(CW$dbh\fR, \f(CW$sequence_name\fR )" 4 .IX Item "$last_value = db_lastseq( $dbh, $sequence_name )" Takes a database handle and the name of the sequence. It returns the last value that the sequence handed out. Usefully during transactions when the id of the last inserted \s-1SQL\s0 is needed. Will \fIcroak()\fR if there is no database handle passed in or if no sequence is passed in. If no sequence is passed in, before \fIcroak()\fRing it will preform a rollback. .ie n .IP "( @values\fR ) = db_next( \f(CW$sth )" 4 .el .IP "( \f(CW@values\fR ) = db_next( \f(CW$sth\fR )" 4 .IX Item "( @values ) = db_next( $sth )" Takes a statement handle and returns the next row as an array. The function will \fIcroak()\fR if there is no statement handle passed in. .ie n .IP "$hash_reference = db_nextvals( $sth )" 4 .el .IP "$hash_reference = db_nextvals( \f(CW$sth\fR )" 4 .IX Item "$hash_reference = db_nextvals( $sth )" This function takes a sql statement handle, \f(CW$sth\fR, and returns the next row from the statement as a hash reference with the column names as the keys and the values set from the row in the query. .ie n .IP "$sth = db_query( $dbh\fR, \f(CW$description\fR, \f(CW@sql_query )" 4 .el .IP "$sth = db_query( \f(CW$dbh\fR, \f(CW$description\fR, \f(CW@sql_query\fR )" 4 .IX Item "$sth = db_query( $dbh, $description, @sql_query )" This function takes a database handler, \f(CW$dbh\fR, a description of the call, \f(CW$description\fR, and a sql query, \f(CW@sql_query\fR. The sql query can be either an array or a string, it will be joined with spaces if it is an array. The query is then run against the database specified in \f(CW$dbh\fR. The function will return a statment handler, \f(CW$sth\fR, or if there is an error while executing the sql query it will \f(CW\*(C`croak()\*(C'\fR. .ie n .IP "db_rollback( $dbh )" 4 .el .IP "db_rollback( \f(CW$dbh\fR )" 4 .IX Item "db_rollback( $dbh )" Takes a database handle and preforms a rollback on the handle. Returns nothing. .ie n .IP "$rows = db_rowcount( $sth )" 4 .el .IP "$rows = db_rowcount( \f(CW$sth\fR )" 4 .IX Item "$rows = db_rowcount( $sth )" Takes a statement handle and returns an integer count of the number of rows affected in the statement handle ( ie. the number of rows in a select ). .ie n .IP "db_run( $dbh\fR, \f(CW$description\fR, \f(CW@sql_query )" 4 .el .IP "db_run( \f(CW$dbh\fR, \f(CW$description\fR, \f(CW@sql_query\fR )" 4 .IX Item "db_run( $dbh, $description, @sql_query )" This function behaves identcally to \f(CW\*(C`db_query()\*(C'\fR, save it uses the \s-1DBI\-\s0>do vs the \s-1DBI\-\s0>execute method to run the sql query. This means this function will never return a statement handle. .SH "METHODS" .IX Header "METHODS" .IP "new" 4 .IX Item "new" Not currently used, since there are no other methods to act on the object. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIGantry::Utils::SQL\fR\|(3), \s-1\fIDBI\s0\fR\|(3), \fIDBD::Pg\fR\|(3) .SH "LIMITATIONS" .IX Header "LIMITATIONS" This library is untested with databases other than Postgresql. .SH "AUTHOR" .IX Header "AUTHOR" Nicholas Studt .SH "COPYRIGHT and LICENSE" .IX Header "COPYRIGHT and LICENSE" Copyright (c) 2005, Nicholas Studt. .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.