Re: ODBC - Retrieving info messages - RAISE NOTICE
От | Clemens Ladisch |
---|---|
Тема | Re: ODBC - Retrieving info messages - RAISE NOTICE |
Дата | |
Msg-id | 7787c333-02bd-677f-d72f-fe40dd89a177@ladisch.de обсуждение исходный текст |
Ответ на | ODBC - Retrieving info messages - RAISE NOTICE ("Wolfgang Apolinarski" <wolfgang.apolinarski@googlemail.com>) |
Ответы |
Re: ODBC - Retrieving info messages - RAISE NOTICE
|
Список | pgsql-odbc |
Wolfgang Apolinarski wrote: > only the last message ("3") is retrieved, when a statement like > DO $$ > RAISE NOTICE '1'; > RAISE NOTICE '2'; > RAISE NOTICE '3'; > END$$; > is executed. When receiving a notice from libpq, the driver calls QR_set_notice(), which replaces any previous notice. To get all notices separated with a semicolon, try using QR_add_notice() instead (see the patch below). > Maybe this is a general constraint when using ODBC In theory, the ODBC API (SQLGetDiagRec) would allow any number of messages. Regards, Clemens --- psqlodbc.orig/connection.c +++ psqlodbc/connection.c @@ -894,7 +894,7 @@ handle_pgres_error(ConnectionClass *self { if (QR_command_successful(res)) QR_set_rstatus(res, PORES_NONFATAL_ERROR); /* notice or warning */ - QR_set_notice(res, errmsg); /* will dup this string */ + QR_add_notice(res, errmsg); /* will dup this string */ } goto cleanup; }
В списке pgsql-odbc по дате отправления: