retrieving function raise messages in ecpg embedded sql code

Поиск
Список
Период
Сортировка
От Haszlakiewicz, Eric
Тема retrieving function raise messages in ecpg embedded sql code
Дата
Msg-id 4EB74494E20A13478F64930FDE244D640266EBDD@CHO3WUC9MBX11.corp.transunion.com
обсуждение исходный текст
Ответы Re: retrieving function raise messages in ecpg embedded sql code  (Jeff Davis <pgsql@j-davis.com>)
Список pgsql-general
I'm trying to get some additional information back from a trigger to my embedded SQL
program, to essentially emulate Informix's way of generating serial values.
I can get the serial to be generated, but I'm trying to figure out how to get the
generated value back to my program with minimal changes to the SQL.

I have a trigger that looks a bit like this:

create table mytable (mycol integer, mycol2 integer);

create or replace function functionfoo() returns trigger as $QUOTED$
BEGIN
new.mycol = nextval(TG_TABLE_NAME || '_mycol_seq');
raise INFO using MESSAGE = 'A Message';
return new;
END;
$QUOTED$ LANGUAGE 'plpgsql';

create trigger mytable_insert_trig before insert on mytable for each row when (new.mycol = 0) execute procedure
functionfoo();


My ecpg program looks a bit like this:

    exec sql begin declare section;
    long mycol1;
    long mycol2;
    const char *mydb;
    exec sql end declare section;
    mycol1 = 0;
    mycol2 = 1;
    mydb = "mydb";
    exec sql connect to :mydb;
    exec sql prepare row_insert from "insert into mytable values (?, ?)";
    EXEC SQL EXECUTE row_insert using :mycol1, mycol2;


I can't figure out how to retrieve the message raised by the trigger.  I know it's
available in some cases, because I see the message when I insert a row through psql,
but even things like this:
   printf("%s\n", PQerrorMessage(ECPGget_PGconn(mydb)));

return nothing useful.  Is there a way to get this information?

Thanks,
eric


В списке pgsql-general по дате отправления:

Предыдущее
От: Chris Schnaufer
Дата:
Сообщение: Composite Types, arrays, and functions
Следующее
От: Paul Jones
Дата:
Сообщение: Fine-grained replication?