Re: perl Pg module and result status - Mailing list pgsql-general

From Edward Q. Bridges
Subject Re: perl Pg module and result status
Date
Msg-id 200009202329.e8KNTps38058@hub.org
Whole thread Raw
In response to perl Pg module and result status  (Fernán Agüero <fernan@iib.unsam.edu.ar>)
Responses Re: perl Pg module and result status
List pgsql-general
i can't seem to locate the reference to the documentation
you mention in the perldoc for DBD::Pg, can you reference
it?

as a general note, you should be using the DBI interface
with DBD::Pg and not calling the methods in DBD::Pg
directly.  they're "private" and likely to change.

in other words your perl script should "use DBI;" and
not mention DBD::Pg at all.

try this:

use DBI;
$user = '';
$pass = '';
$dburl = '';  # should be: dbi:Pg:dbname=[your database name]
$db = DBI->connect($dburl, $user, $pass, {AutoCommit=>0} )
   or die "Can't connect to db";
$sth = $db->prepare( q{ select current_timestamp } )
   or die "Can't prepare statement: " . $db->errstr;
$sth->execute()
   or die "Can't execute statement: " . $db->errstr;
$result = $sth->fetchrow_array();

($result) ? print "$result\n" : print "error fetching: " . $db->errstr;

__END__


hope this helps
--e--



On Wed, 20 Sep 2000 23:59:41 GMT, Fern�n Ag�ero wrote:

> Dear all: i am somewhat new to both perl and PostgreSQL. I am writing
> some perl scripts to store and retrieve information in a pgsql database,
> using the Pg perl module. However i am having trouble doing checks after
> issuing queries or commands.
>
> According to the module documentation:
> "
> $result_status = $result->resultStatus
> Returns the status of the result. For comparing the status you may use
> one of the following constants depending upon the command executed:
> - PGRES_EMPTY_QUERY
> - PGRES_COMMAND_OK
> - PGRES_TUPLES_OK
> - PGRES_COPY_OUT
> - PGRES_COPY_IN
> - PGRES_BAD_RESPONSE
> - PGRES_NONFATAL_ERROR
> - PGRES_FATAL_ERROR
> "
>
> When I check the contents of $result_status it is not any of the
> mentioned constants, but a number (i am now getting 7 for a
> $result->getvalue command after a failed select statement). If i issue
> the same select statement in the pgsql terminal everything works. Thus i
> don't understand what could be happening.
>
> However, comparisons of the kind of:
>     if ($result_status != PGRES_COMMAND_OK)
> appear to work most of the times (am i comparing against a number?)
>
> Any help is appreciated.
>
> Thanks in advance,
>
>
> Fernan
>
>
>




pgsql-general by date:

Previous
From: John McKown
Date:
Subject: Re: copy table from one database to another
Next
From: Matthew Rice
Date:
Subject: Re: Public Database of zip code information