Thread: LIBPQ Exception

LIBPQ Exception

From
"Abraham, Danny"
Date:
How do I program a DML statement that does not roll back using C.

res=PQexec(conn,"BEGIN; insert into x values(100); exception when others
then null; end;")

fails on syntax.

Any other alternative?

Thanks

Danny



Re: LIBPQ Exception

From
"Rodrigo De León"
Date:
On Dec 12, 2007 7:36 AM, Abraham, Danny <danny_abraham@bmc.com> wrote:
> Any other alternative?

There are no anonymous blocks in PostgreSQL:

You could try creating a function:

create or replace function
  shootmyselfinthefoot()
returns boolean as
$$
declare
  (...);
begin
  execute 'SOME DML HERE';
  execute 'SOME MORE DML HERE';
  execute 'ETC.';
  (...)
  exception when others then
    -- whatever...
end;
$$ language plpgsql;

... and call that from your C program.