Bart Samwel wrote:
> Hi there,
>
> I have just upgraded to PostgreSQL 8.1 and I have encountered the
> following problem. When I connect through psqlODBC 8.01.0200 (PostgreSQL
> Unicode), a sequence like the following:
>
> <start a transaction>
> DROP SEQUENCE BAZ;
> SELECT 1;
>
> will give an error on the DROP SEQUENCE:
>
> "42P01: Error while executing the query;
> ERROR: sequence "app_bod_seq" does not exist"
>
> and will then give an error on the SELECT 1:
>
> "25P02: Error while executing the query;
> ERROR: current transaction is aborted, commands ignored until end of
> transaction block"
>
> When connecting through the psqlODBC 8.00.0102, I do *not* get the
> second error. This is, in fact, what I would expect. It is also what
> pretty much all other databases do (our application also runs on
> Informix, Firebird, Oracle and MS SQL Server, and they all allow failed
> commands in transactions without forcing a rollback). And it is what the
> 8.00.0102 driver did (or appeared to do?). Was this behaviour changed on
> purpose, and if so, why? And is there a way to work around it? ;-)
Please try Experimental Enhanced Branch(psqlODBC 07.03.0260) at
http://pgfoundry.org/projects/psqlodbc/ .
You can specify the *Level of rollback on errors* option as *Statement*
using the version.
In addtion you had better replace the psqlodbc35w.dll with the one at
http://www.geocities.jp/inocchichichi/psqlodbc/index.html
because it constains bug fixes for George Weaver's problem and
(at least a part of) Daniel Holm's problem.
regards,
Hiroshi Inoue