Обсуждение: Error code handling in perl

Поиск
Список
Период
Сортировка

Error code handling in perl

От
Elinor Medezinski
Дата:
Hi all,

I am populating a table in postgres, writing the script in perl (using DBI),
and I am trying to do some error handling.  For example - this should return
an error due to unique violation:
>$sth=$conn->prepare("INSERT INTO tablename (names) values ($name)") or die
"error1 is: ".$sth->err;

>$sth->execute() or do{
>  print "state is: ".$sth->state."\n";
>  print "err is: ".$sth->err."\n";
>};

I always get the same SQLSTATE and ERROR, no matter what the error is:

>state is: S1000
>err is: 7

although in the documentation it says that the error code is "23505" (unique
violation).
Is there no way to identify the error by code from postgres via perl?

Thanks,
Elinor

-------------------------------------------------------



Re: Error code handling in perl

От
"Greg Sabino Mullane"
Дата:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
> although in the documentation it says that the error code is
> "23505" (unique violation).
> Is there no way to identify the error by code from postgres
> via perl?
Currently, DBD::Pg does not support the $sth->state method, but
it is high on the todo list and should appear in the next
version.
- --
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 200405212100
-----BEGIN PGP SIGNATURE-----
iD8DBQFArqaMvJuQZxSWSsgRAlYLAKDykM8K4Fyfy+neIjA2a3B+NI4x2wCbBc04
GiaVC2lYiMfuVQfEG/2jKiY=
=1kvf
-----END PGP SIGNATURE-----