Re: perl Pg module and result status

From: "Edward Q(dot) Bridges" <ed(dot)bridges(at)buzznik(dot)com>
To: Fernn Agero <fernan(at)iib(dot)unsam(dot)edu(dot)ar>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: perl Pg module and result status
Date: 2000-09-20 23:27:40
Message-ID: 200009202329.e8KNTps38058@hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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, Fernn Agero 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
>
>
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Matthew Rice 2000-09-20 23:51:38 Re: Public Database of zip code information
Previous Message John McKown 2000-09-20 23:16:37 Re: copy table from one database to another