Re: ODBC - Retrieving info messages - RAISE NOTICE
От | Inoue, Hiroshi |
---|---|
Тема | Re: ODBC - Retrieving info messages - RAISE NOTICE |
Дата | |
Msg-id | 437ead79-91df-a257-162e-bc5bec9abbc5@dream.email.ne.jp обсуждение исходный текст |
Ответ на | Re: ODBC - Retrieving info messages - RAISE NOTICE (Clemens Ladisch <clemens@ladisch.de>) |
Список | pgsql-odbc |
Hi, On 2018/02/10 19:18, Clemens Ladisch wrote: > 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). I would take care of the patch. Thanks. Hiroshi Inoue > >> 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 по дате отправления: